Monitoring

NRPE 無法完成 SSL 握手 - 對等方未返回證書

  • January 6, 2021

啟用 SSL 後,NRPE 出現 SSL 握手錯誤。沒有 SSL 做 check_nrpe,它工作得非常好。允許的主機是正確的,並且在未啟用 SSL 的情況下執行時,它會顯示正確的版本。兩者都在 CentOS Linux 版本 7.9.2009(核心)上執行 4.3 我沒有從通過 Yum 安裝的原始碼編譯 NRPE 或 nagios。

以下是我認為對這個問題很重要的配置。

這是我正在記錄的錯誤…它說版本錯誤,但兩者都執行相同版本的NRPE。

我正在使用真正購買的萬用字元證書……雙方都使用相同的證書。證書與伺服器的域名匹配。

nrpe --version
NRPE - Nagios Remote Plugin Executor
Version: 4.0.3

openssl 的版本相同

openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

當我執行 ./check_nrpe -H hostname.domain.com 我得到

CHECK_NRPE: (ssl_err != 5) Error - Could not complete SSL handshake with 10.1.1.125: 1

在另一台伺服器上記錄:

Jan  5 12:48:54 nagiostest2 nrpe[3575]: Error: (ERR_get_error_line_data = 336130315), Could not complete SSL handshake with 10.1.1.64: wrong version number
Jan  5 12:51:11 nagiostest2 nrpe[3692]: CONN_CHECK_PEER: checking if host is allowed: 10.1.1.64 port 16075
Jan  5 12:51:11 nagiostest2 nrpe[3692]: is_an_allowed_host (AF_INET): is host >10.1.1.64< an allowed host >10.1.1.64<
Jan  5 12:51:11 nagiostest2 nrpe[3692]: is_an_allowed_host (AF_INET): is host >10.1.1.64< an allowed host >10.1.1.64<
Jan  5 12:51:11 nagiostest2 nrpe[3692]: is_an_allowed_host (AF_INET): host is in allowed host list!
Jan  5 12:51:11 nagiostest2 nrpe[3692]: Error: (ERR_get_error_line_data = 336105671), Could not complete SSL handshake with 10.1.1.64: peer did not return a certificate

這是我的 nrpe.cfg 的重要部分

debug=1

ssl_cipher_list=ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!RC4:!MD5:@STRENGTH

ssl_version=TLSv1.1+

#ssl_cipher_list=ALL:!MD5:@STRENGTH
#ssl_cipher_list=ALL:!MD5:@STRENGTH:@SECLEVEL=0
ssl_cipher_list=ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!RC4:!MD5:@STRENGTH

# SSL Certificate and Private Key Files

ssl_cacert_file=/etc/nagios/ssl/ca.crt
ssl_cert_file=/etc/nagios/ssl/star.mydomain.com.crt
ssl_privatekey_file=/etc/nagios/ssl/star.mydomain.com.key


# SSL USE CLIENT CERTS
# This options determines client certificate usage.
# Values: 0 = Don't ask for or require client certificates (default)
#         1 = Ask for client certificates
#         2 = Require client certificates
ssl_client_certs=2

# Enables all SSL Logging
ssl_logging=0xff

感謝您提前提供的任何幫助!

我假設nrpe.cfg它來自被呼叫的節點(10.1.1.125),如果是這種情況,正如上面 Steffen 所說,您已將其配置為需要任何呼叫它的人的證書。大概這應該在您執行時包含在內check_nrpe,並且查看 4.0.3 的幫助文本(這是我擁有的)有一個-C標誌。因此,您可能需要將其包含在您的呼叫中,或者重新配置正在呼叫的 NRPE 節點。

引用自:https://unix.stackexchange.com/questions/627711