1

我正在建立一个 Nagios/Icinga 监控系统来监控我的环境。我想用 check_ssl_cert 监控我的 SSL 证书,因为它不适用于所有站点。

我的命令:

/usr/lib/nagios/plugins/check_ssl_cert -c 7 -w 28 -H 141.85.37.43 -r /etc/ssl/certs/

返回:SSL_CERT CRITICAL: Error: verify depth is 6

(141.85.37.43 只是一个示例地址,不是我自己的,但犯了同样的错误)。

如果我尝试

# openssl s_client -connect ftp.myDomain.de:443
CONNECTED(00000003)
140037719324328:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal     error:s23_clnt.c:741:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 320 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

或者

# curl https://ftp.myDomain.de:443 -v
* About to connect() to ftp.myDomain.de port 443 (#0)
*   Trying 212.xxx.xxx.xxx...
* connected
* Connected to ftp.myDomain.de (212.xxx.xxx.xxx) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS alert, Server hello (2):
* error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
* Closing connection #0
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

我在一个名为ftp.myDomain.de. https://ftp.myDomain.de我可以毫无问题地使用它。证书作为 .pem 文件安装,并已通过 vom Thawte 验证。

我的证书有问题吗?

4

4 回答 4

3

我觉得我得到了一些东西。这与我的 SSL 证书有关。我需要检查ssl version 3以获得工作结果。

Icinga plugins # openssl s_client -connect ftp.myDomain.de:443 -ssl3

我修改check_ssl_cert并添加了一个新参数 -ssl 来定义版本,就像提供的 check-http 一样:

http://pastebin.com/f46YQFg3(需要把它贴在那里,渴望stackoverflow.com)

并且可以检查它

Icinga plugins # /usr/lib/nagios/plugins/check_ssl_cert -c 7 -w 28 -H "ftp.myDomain.de" -r "/etc/ssl/certs/" --ssl 3
SSL_CERT OK - X.509 certificate for 'ftp.myDomain.de' from 'Thawte DV SSL CA' valid until Jun  5 23:59:59 2015 GMT (expires in 676 days)|days=676;28;7;;

所以我的问题已经解决了,但我需要弄清楚我的旧有什么区别 - 不需要解决方法 - 证书,如果我需要在那里改变一些东西?

于 2013-07-29T11:26:33.470 回答
2

我与背后的开发人员取得了联系,check_ssl_cert他在更新版本中优化并实施了我的解决方案。

https://trac.id.ethz.ch/projects/nagios_plugins/wiki/check_ssl_cert

于 2013-07-31T10:27:57.247 回答
1

我在一个新的 Nagios 盒子上遇到了同样的问题,并尝试了最新版本check_ssl_cert但没有成功。

最后的解决方案是安装expect.

于 2014-11-03T23:05:55.677 回答
0

我不能肯定地说,因为我没有所有必要的细节,但看起来你的证书很好,只是它的身份验证链太长了,check_ssl_cert 无法验证它。

错误消息显示“验证深度为 6”。这意味着证书验证链的长度超过 6 项,而不是一定会失败。

在 check_ssl_cert 的第 228 和 205 行附近,您会看到代码:

exec_with_timeout $TIMEOUT "echo 'Q' | $OPENSSL s_client ${CLIENT} ${CLIENTPASS} -connect $HOST:$PORT ${SERVERNAME} -verify 6 ${ROOT_CA} 2> ${ERROR} 1> ${CERT}"

请注意-verify 6那里限制要测试的最大链长度。如果您将其更改为-verify 16(这可能是矫枉过正但应该处理您的链条)它很可能会起作用。

于 2013-07-28T22:31:49.130 回答