使用Nagios检查SSL证书的有效性,包括CA链

Nagios可以进行SSL检查,但实际上并不检查证书是否对您使用的连接地址(通用名称匹配)有效。

在我们的其中一台服务器上,Postfixconfiguration文件被Plesk更新所取代,而没有通知,导致对蛇油证书的退化。 Nagios检查SSL,但没有看到它。 为此,我想检查不仅仅是到期date,而是实际检查CA链。

我已经尝试了几个SSL插件的nagios,但他们都不能做到这一点。

有人有build议吗?

我没有任何经验,但它看起来像check_ssl_cert插件做你在找什么。

摘自作者网站:

check_ssl_cert是一个Nagios插件,用于检查CA和X.509证书的有效性

我找不到testing它的插件,但是将一些随机的GPLed插件的内核包装在一个openssl单线程中将是非常容易的。 这是一个比较我的两个服务器的输出的单线程; www上有一个Equifax证书,nagios是自签名的:

[madhatter@anni ~]$ echo "" | openssl s_client -connect nagios.teaparty.net:443 |& grep "verify error" verify error:num=18:self signed certificate [madhatter@anni ~]$ echo $? 0 [madhatter@anni ~]$ 

 [madhatter@anni ~]$ echo "" | openssl s_client -connect www.teaparty.net:443 |& grep "verify error" [madhatter@anni ~]$ echo $? 1 [madhatter@anni ~]$ 

注意在grep的退出状态中,很好的,易于testing的变化,取决于它是否find“validation错误”string。

怎么样?

我试图创build一个Nagios检查来validation这个方法的链顺序,但是这个方法似乎没有改变就可以和Debian一起工​​作。 你应该使用:

 echo "" | openssl s_client -showcerts -connect example.com:443 -CApath /etc/ssl/certs/ |& grep "verify error" 

而且,当链条顺序错误时,这不起作用,但仍然完全存在。

只要中间件按照正确的顺序排列,就可以说顺序并不在意,但有些系统需要根CA存在,有些系统则不需要。