客戶未出示證書(後綴)
我有配置了 TLS 選項的後綴 SMTP 中繼。現在剛剛意識到使用 Microsoft Outlook 向 gmail(例如)發送電子郵件時,在收件人的郵件標題上發現這個“客戶端沒有提供證書”
收到:來自 MYCOMPUTER(未知
$$ 100.200.100.150 $$)(使用帶有密碼(256/256 位)的 TLSv1.2)(客戶端未提供證書),由 smtpserver.domain.com(後綴)與 user@gmail.com 的 ESMTPSA id ABCDE12345
我使用從購買的萬用字元 SSL 證書科莫多。
我可以知道為什麼嗎?我是不是配置錯了?
請幫忙
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_use_tls = yes smtp_use_tls
= yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/certs/key.key
smtpd_tls_cert_file = /etc/postfix/certs/crt.crt
smtpd_tls_CAfile = /etc/postfix/certs /cabundle.ca-bundle
smtpd_tls_loglevel = 1
smtpd_tls_received_header = 是
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_ask_ccert = 是
tls_random_source = dev:/dev/urandom
smtpd_tls_session_cache_database = btree: $ {data_directory}/smtpd_scache smtp_tls_session_cache_database = btree: $ {data_directory}/smtp_scache
smtp inet n - n - - smtpd submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes
using TLSv1.2 with cipher (256/256 bits)
伺服器支持 TLS,客戶端選擇協商一個安全的 TLS 連接,一切都很好。
(Client did not present a certificate)
客戶端沒有使用 TLS 客戶端證書向伺服器驗證自身以進行雙向TLS,這很常見,無需擔心,除非您想要/需要進行雙向 TLS
您只在伺服器角色(即接收郵件)中配置了 Postfix 證書的使用。這些是
smtpd_*
設置。但是您所指的消息不是關於由您的伺服器接收郵件,而是關於將郵件從您的伺服器發送到另一台伺服器,即由另一台伺服器接收。在這種情況下,發送系統(即您的 Postfix)通常只檢查接收郵件伺服器的證書(即另一個證書),如果涉及到 TLS(您的設置認為這是可選的,即
smtp_tls_security_level = may
)。一些郵件伺服器被配置為不僅提供它們自己的證書供發件人(即您的 Postfix)進行身份驗證,而且還向發件人請求證書。這通常是可選的,即即使發送者沒有提供這樣的證書來驗證自己,TLS 連接也會被接受。這就是導致消息*“客戶端沒有提供證書”的*原因。
如果你真的想提供一個客戶端證書,你需要在 Postfix 中明確配置相關
smtp_*
設置(不是smtpd_*
),即smtp_tls_cert_file
等。有關詳細資訊,請參閱文件。