您到底如何测试 HTTPS 站点的已撤销证书?

Bil*_*iss 5 ssl http https nagios

我目前正在使用 nagios 进行监控,包括使用check_http选项来检查即将到期的 SSL 证书等。我想做的是测试我监控的每个站点的吊销证书。听起来很容易,对吧?好:

  • check_http似乎没有检查吊销的证书。至少最近发生的时候没有发出哔哔声,这导致了一些混乱
  • Opensslverify-crl_checkand -crl_check_all,这会很棒,但我更关心 OSCP 而不是 CRL(因为这是浏览器会关心的)
  • Openssl 有一种oscp模式,但看起来我必须做很多工作才能将证书放在正确的位置,找出 OSCP 服务器的位置等。

我找到了很多关于编写代码来进行 OSCP 检查的文章,但是必须有一个很好的程序来完成它,对吧?我想要的是 Nagios 检查,或者我可以用作检查的东西。在我的完美世界中,它看起来像:

check_http_with_oscp -I (IP) -H (hostname) -p 443
Run Code Online (Sandbox Code Playgroud)

任何人?

小智 2

恐怕我只能在这里给出指导,但你应该能够将一些东西放在一起,而不会太痛苦。

openssl 的 s_client -showcerts 将转储 PEM 编码的证书。您可以使用正则表达式轻松提取它们中的每一个。然后通过 openssl x509 -text 通过管道传输它们以提取 OCSP url。然后可以使用 openssl ocsp 向响应者发送 OCSP 请求:

http://openssl.org/docs/apps/ocsp.html

在每种情况下,您都需要父证书,除了根证书之外,您都需要父证书。因此,除了可能对其进行硬编码之外,它是相当独立的。(您还可以通过 AIA 扩展 URL 下载根证书。)