Exim

Exim 在 gnutls_handshake 期間說“請求無效”

  • September 30, 2014

我有 Debian wheezy 並設置 Exim 來監聽埠 587,使用者可以使用 TLS 進行身份驗證。我正在使用 Thunderbird 31.1.2 對其進行測試。當我嘗試發送消息時,Thunderbird 會顯示:

發送消息失敗。無法發送消息,因為與 SMTP 伺服器 smtp.gaspatchmodels.com 的連接在事務處理過程中失去。重試或聯繫您的網路管理員。

Exim 在主日誌中顯示了這一點:

2014-09-29 18:03:22 從 ppp-94-68-63-22.home.otenet.gr 連接時出現 TLS 錯誤(

$$ 192.168.1. 68 $$)$$ 94.68.63.22 $$(gnutls_handshake):請求無效。

如果我嗅探流量,我看到客戶端說“STARTTLS”,伺服器響應“220 TLS 繼續”,然後客戶端發送二進制數據,之後連接似乎被丟棄。

如果我執行exim-d這就是我得到的:

15332 SMTP<< STARTTLS
15332 initialising GnuTLS as a server
15332 GnuTLS global init required.
15332 initialising GnuTLS server session
15332 Expanding various TLS configuration options for session credentials.
15332 certificate file = /etc/exim4/exim.crt
15332 key file = /etc/exim4/exim.key
15332 TLS: cert/key registered
15332 verify certificates = /etc/ssl/certs/ca-certificates.crt size=245341
15332 Added 159 certificate authorities.
15332 Initialising GnuTLS server params.
15332 Loading default hard-coded DH params
15332 Loaded fixed standard D-H parameters
15332 GnuTLS using default session cipher/priority "NORMAL"
15332 host in tls_verify_hosts? no (option unset)
15332 host in tls_try_verify_hosts? no (option unset)
15332 TLS: a client certificate will not be requested.
15332 SMTP>> 220 TLS go ahead
15332 Received TLS SNI "[my domain name]" (unused for certificate selection)
15332 LOG: MAIN
15332   TLS error on connection from ppp-94-68-63-22.home.otenet.gr ([192.168.1.68]) [94.68.63.22] (gnutls_handshake): The request is invalid.
15332 TLS failed to start

對我來說,“請求無效”的資訊傳達了 Thunderbird 有過錯的意思;但是我不敢相信是這種情況,因為它既不能在我的 Thunderbird 上也不能在我客戶的 Thunderbird 上工作,而且因為它在兩天前工作(然後我從擠壓更新,刪除了配置,並重新創建它ansible)。我在配置中看不到任何相關的東西

MAIN_TLS_ENABLE = true

/etc/exim4/conf.d/main/000_localmacros.

我可以從 gnutls 獲得更多調試資訊嗎?比如為什麼認為請求無效?

我找到了問題所在。我在配置中犯了一個錯誤:/etc/exim4/exim.crt,而不是包含主機證書+鏈證書,包含主機私鑰+鏈證書。

我想知道這是一個錯誤exim還是gnutls錯誤。“請求無效”似乎是針對此問題的不恰當錯誤消息。

引用自:https://serverfault.com/questions/632127