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

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

最近发现的 Heartbleed 漏洞促使证书颁发机构重新颁发证书。

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

如果我的理解正确,那么旧证书应该已经被 CA 撤销,并且应该将其放入 CRL(证书撤销列表)或 OCSP 数据库(在线证书状态协议)中,否则从技术上讲,有人可以通过从受损证书中获取的信息重新生成证书来执行“中间人攻击”。

有没有办法检查我的旧证书是否已进入 CRL 和 OCSP。如果没有,有没有办法将它们包括在内?

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

答案1

从您的证书中获取 ocsp url:

$ 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
$

答案2

您可以在 Windows 上使用 certutil:

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

certutil -f –urlfetch -verify [FilenameOfCertificate]

例如,使用

certutil -f –urlfetch -verify mycertificatefile.cer

来源/更多信息: 科技网

此外,请务必与您的 CA 核实。仅仅因为您重新密钥化证书/获得新证书,并不意味着他们会自动撤销它!

答案3

你可以使用这个SSLLabs 服务测试 SSL 证书,但您需要它们可以从 Web 访问。此外,您可以了解更多信息,因为此服务提供一些审计。

答案4

如果您已通过生成证书的 CA 撤销证书,那么它们将会进入 OCSP 和 CRL。

如果您想确保情况确实如此,请从证书中提取 ocsp url,然后构建对该 url 的 ocsp 请求(包括证书序列号、ca 颁发者证书)并检索 ocsp 响应,然后可以解析它以检查并确认它确实已被撤销。

更多详细信息请参阅此实用页面:http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

注意:这需要使用 openssl 库。

编辑1:我看到您在这个答案之后明确添加了有关 OCSP 和 CRL 的信息。

相关内容