如何檢查遠端 SMTP 伺服器的 TLS 證書?
我們有一個在 Windows Server 2008 上執行的 Exchange 2007 伺服器。我們的客戶端使用另一個供應商的郵件伺服器。他們的安全策略要求我們使用強制 TLS。直到最近,這一切都很好。
現在,當 Exchange 嘗試將郵件傳遞到客戶端的伺服器時,它會記錄以下內容:
無法在連接器“預設外部郵件”上建立與域安全域“ourclient.com”的安全連接,因為 ourclient.com 的傳輸層安全 (TLS) 證書驗證失敗,狀態為“UntrustedRoot”。請聯繫 ourclient.com 的管理員解決問題,或從域安全列表中刪除該域。
從 TLSSendDomainSecureList 中刪除 ourclient.com 會導致使用機會性 TLS 成功傳遞消息,但這充其量只是一種臨時解決方法。
客戶是一家非常大的、對安全敏感的國際公司。我們的 IT 聯繫人聲稱不知道他們的 TLS 證書有任何更改。我曾多次要求他確定生成證書的權威,以便我可以解決驗證錯誤,但到目前為止他一直無法提供答案。據我所知,我們的客戶本可以將其有效的 TLS 證書替換為來自內部證書頒發機構的證書。
有誰知道一種手動檢查遠端 SMTP 伺服器的 TLS 證書的方法,就像在 Web 瀏覽器中檢查遠端 HTTPS 伺服器的證書一樣?確定證書的頒發者並將該資訊與我們 Exchange 伺服器上受信任的根證書列表進行比較可能會很有幫助。
您可以使用 OpenSSL。如果您必須使用 來檢查證書
STARTTLS
,那麼只需執行openssl s_client -connect mail.example.com:25 -starttls smtp
或者對於標準的安全 smtp 埠:
openssl s_client -connect mail.example.com:465
我知道這是一個老問題,但即使在今天,對於希望在其電子郵件伺服器上確認 SSL 證書有效性的管理員來說,這仍然是一個相關問題。
您可以訪問https://www.checktls.com並免費執行測試。