替換 Windows Server 2019 中 SMTP 伺服器的 TLS 證書
前段時間我在 Windows Server 2019 機器上設置了 SMTP 伺服器。此伺服器的 FQDN 是smtp.mydomain.com,智能主機設置為 smtp-relay.gmail.com,儘管我認為這並不重要。
我將 Let’s Encrypt CA 生成的萬用字元證書 (*.mydomain.com) 安裝到 Personal 儲存區,並且能夠為 SMTP 伺服器設置 TLS:
現在,我想更新證書。為此,我將由同一 CA 生成的具有相同主題 (CA=*.mydomain.com) 的更新證書安裝到個人商店。然後我停止了 SMTP 伺服器並刪除了舊證書。之後,我啟動了伺服器,去檢查新證書是否被抓到了,但沒有!
該消息告訴“沒有證書,TLS 不可用。” 這意味著 SMTP 伺服器找不到正確的證書。我閱讀了十幾個部落格和 QA,但無法解決這個問題。
有人知道如何在 Windows Server 2019 機器上正確更新 SMTP 伺服器的證書嗎?
更新——新證書包含一個私鑰,適用於在同一台機器上執行的 Web 伺服器。
我有同樣的問題,但有一些差異。
我正在調查中,我到目前為止的調查結果:
我不使用萬用字元證書,我有 SAN 的 Let’s Encrypt 證書。它已經工作了幾個月,完成了三次更新,沒有任何問題。現在,在第四次更新 SMTP 後停止工作。最後一份工作證明是在 2020 年 7 月 28 日簽發的,更新是在 2020 年 9 月 22 日完成的。如果證書是問題的根源,那麼在這段時間內 Let’s Encrypt 方面發生了一些變化。
行為很奇怪。當 smtpsvc 服務啟動時,它找到證書,它記錄
為帶有指紋 <certificate_thumbprint_removed> 的 SMTP 虛擬伺服器實例“1”找到了 TLS 伺服器證書。TLS 將可用於此虛擬伺服器。
在事件日誌中,但在 Internet 資訊服務 (IIS) 6.0 管理器中的 SMTP 虛擬伺服器屬性中的選項卡上的訪問中的安全通信部分我可以看到
沒有證書,TLS 不可用。
證書本身必須有一些變化,或者有一些 Windows 更新改變了 smtpsvc 功能,或者有一些關於 SSL/TLS 的變化。
順便說一句,我發現微軟在 smtpsvc 服務的程式碼中有一個 bug。如果您使用帶有主題備用名稱 (SAN) 的證書,當它搜尋合適的證書時,它不會檢查通用名稱 (CN),它只檢查 SAN 列表中的第一個條目!如果第一個 SAN 與在“傳遞”選項卡、“高級…”按鈕、“完全限定域名”欄位中輸入的 FQDN 匹配,則 smtpsvc 將使用該證書。如果匹配名稱在 CN 或 SAN 列表中的第二、第三等位置,則不會使用證書和日誌
找不到 SMTP 虛擬伺服器實例“1”的可用 TLS 伺服器證書。將為此虛擬伺服器禁用 TLS。