如何检查我的SSL证书是否已被吊销


23

最近发现的令人讨厌的漏洞已促使证书颁发机构重新颁发证书。

在发现流血的漏洞之前,我已经生成了两个证书。SSL发行者告诉我重新生成证书后,我已经用新证书更新了两个服务器/域。

如果我的理解是正确的,则旧证书应已由CA吊销,并且应已加入CRL(证书吊销列表)或OCSP数据库(在线证书状态协议),否则从技术上讲,某人可以执行“攻击中的“攻击者”,即从受感染证书中获取的信息中重新生成证书。

有没有办法检查我的旧证书是否已达到CRL和OCSP。如果没有,没有办法让他们加入进来吗?

更新:这种情况是我已经替换了我的证书,我所拥有的只是旧证书的.crt文件,因此使用url进行检查实际上是不可能的。


我相信您可以使用certutil进行检查。在这里
MichelZ 2014年

1
我将Ubuntu用作桌面和服务器上的Centos
sridhar pandurangiah 2014年

然后,我鼓励您这样标记您的问题
MichelZ 2014年

我建议读在* nix
MichelZ

@MichelZ-我已用Ubuntu标记了这个问题
sridhar pandurangiah

Answers:


10

从您的证书获取ocsp网址:

$ openssl x509 -noout -ocsp_uri -in /etc/letsencrypt/archive/31337.it/cert1.pem
http://ocsp.int-x1.letsencrypt.org/
$

向ocsp服务器发送请求,以检查证书是否被撤销:

$ openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain4.pem -cert /etc/letsencrypt/archive/31337.it/cert4.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 10:00:00 2015 GMT
        Next Update: Nov  5 10:00:00 2015 GMT
$

这是一个很好的证明。

这是已撤销的证书:

$  openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain3.pem -cert /etc/letsencrypt/archive/31337.it/cert3.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 12:00:00 2015 GMT
        Next Update: Nov  5 12:00:00 2015 GMT
        Revocation Time: Oct 29 12:33:57 2015 GMT
$

这对我有用(谢谢),但我想我还要提到的是,除了吊销时间外,我的账单还显示了吊销原因,这在我们联系发行人以试图弄清楚到底发生了什么事情时很有用。证书。
sdek

10

您可以在Windows上使用certutil:

如果您拥有证书并想要验证其有效性,请执行以下命令:

certutil -f –urlfetch -verify [FilenameOfCertificate]

例如使用

certutil -f –urlfetch -verify mycertificatefile.cer

来源/更多信息: TechNet

此外,请务必与您的CA核对。仅仅因为您对证书进行了密钥更新/获得了新证书,并不意味着他们会自动将其撤消!


1
certutil在Ubuntu服务器上安装,请使用命令sudo apt-get install libnss3-tools。这并不明显,因为搜索apt-get缓存不返回该字符串的任何结果certutil。我知道OP的服务器是CentOS,但其他Ubuntu服务器管理员也可能会发现此问题也很有帮助。
dotancohen 2014年

我的回答完全基于Windows。我不知道这个的任何* nix实现。参见此处,了解可能的* nix解决方案
MichelZ 2014年

2
@dotancohen该程序也被称为certutil,它与certutil.exeWindows上的程序不同,并且使用方式不同。
丹·盖茨

1

您可以使用此SSLLabs服务来测试SSL证书,但需要可从Web对其进行访问。而且您可以找到更多的信息,使该服务提供一些审核。


这要求服务器使用旧证书运行。但是,重新生成我的证书后,我拥有的只是旧证书的.crt文件。
sridhar pandurangiah 2014年

1

如果您已通过生成证书的CA吊销了证书,那么它们将被转交给OCSP和CRL。

如果您希望确保是这种情况,请从证书中提取ocsp网址,然后针对该网址构造一个ocsp请求,包括证书序列号,ca发行方cert并检索ocsp响应,然后可以解析它以检查并确认它确实已被撤销。

在此有用页面上的更多详细信息:http : //backreference.org/2010/05/09/ocsp-verification-with-openssl/

注意:这需要使用openssl库。

Edit1:我看到您在此答案之后已明确添加了有关OCSP和CRL的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.