我目前正在使用nagios进行监控,包括使用check_http选项来检查即将到期的SSL证书等。我想要做的是包括对我监控的每个站点的撤销证书进行testing。 听起来很简单,对吧? 好:
check_http似乎没有检查撤销的证书。 至less在最近发生的时候没有发出哔哔声,这会导致一些混乱 verify有-crl_check和-crl_check_all ,这将是伟大的,但我关心OSCP比CRL更多(因为这是浏览器将关心) oscp模式,但是看起来我需要做很多工作才能把证书放在正确的位置,找出OSCP服务器的位置等等。 我发现了一些关于编写代码来执行OSCP检查的文章,但是必须有一个很好的程序来完成这个工作,对吗? 我想要的是一个Nagios检查,或者我可以使用的一个。 在我完美的世界里,看起来像这样:
check_http_with_oscp -I (IP) -H (hostname) -p 443
任何人?
恐怕我只能在这里指点一下,但是你应该能够把一些东西放在一起,而不是太痛苦。
openssl的s_client -showcerts将转储PEM编码的证书。 你可以很容易地使用正则expression式提取它们中的每一个。 然后通过openssl x509 -text来提取OCSPurl。 然后openssl ocsp可以用来发送一个OCSP请求给响应者:
http://openssl.org/docs/apps/ocsp.html
在每种情况下,您将需要父证书,除了根证书之外,您将拥有这些证书。 所以,除了硬编码之外,它是相当独立的。 (您也可以通过AIA扩展URL下载根证书。)
我们使用了一种非常不同的方法,也许它也适用于您:我们用Firefox的iMacros启动Web浏览器,让它导航到网站,如果证书过期,iMacros将“看到”相同的错误信息一个真正的用户。 我检查那个消息…并且把它返回给我们的监视系统。
我在Windows Server上这样做,但是您也可以通过iMacros命令行支持在Linux上使用它。 这是免费的 iMacros Firefox和Chrome插件的一部分。
或者,可以考虑使用AlertFox监控服务的免费帐户。 您可以每4小时运行一次免费支票,这足以检查过期的证书并触发警报。