那么到底如何测试 HTTPS 网站是否已吊销证书呢?

那么到底如何测试 HTTPS 网站是否已吊销证书呢?

我目前正在使用 nagios 进行监控,包括使用check_http选项检查即将过期的 SSL 证书等。我想要做的是测试我监控的每个站点的证书是否被撤销。听起来很简单,对吧?嗯:

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

我找到了很多关于编写代码进行 OSCP 检查的文章,但一定有一个不错的程序可以做到这一点,对吧?我想要的是 Nagios 检查,或者我可以用作检查的东西。在我理想的世界中,它看起来像这样:

check_http_with_oscp -I (IP) -H (hostname) -p 443

任何人?

答案1

恐怕我在这里只能给出指点,但你应该能够毫不费力地把一些东西拼凑起来。

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

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

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

相关内容