適用於:2019
訂閱版本
重要事項
Microsoft Exchange Server 2016 和 Microsoft Exchange Server 2019 將於 2025 年 10 月 14 日終止支援。 若要保持支援,您需要升級。 如需詳細資訊,請參閱結束 Exchange 2016 和 Exchange Server 2019 的支援。
本文說明在接收伺服器上執行之輸入 STARTTLS 的憑證選取程式。 當簡易郵件傳輸通訊協定 (SMTP) 伺服器嘗試開啟與 Microsoft Exchange 信箱伺服器或Microsoft Edge 傳輸伺服器的安全 SMTP 會話,讓任一部伺服器做為接收伺服器並起始憑證選取程式,以判斷要在 TLS 交涉中使用的憑證時,就會觸發輸入 STARTTLS 憑證選取程式。
下圖描述輸入 STARTTLS 的憑證選取程式步驟:
上述圖表中所述的步驟如下所述:
建立 SMTP 工作階段時,Microsoft Exchange 會呼叫行程來載入憑證。
在「載入憑證」函式中,會檢查會話所連接的接收連接器,以查看 AuthMechanism 屬性是否已藉由執行下列命令設定為 TLS 的值:
Get-ReceiveConnector -Identity <Receive Connector Identity> | fl AuthMechanism
如果 AuthMechanism 屬性的值為 null,您可以執行下列命令,將值設定為 TLS :
$AuthMechanism = (Get-ReceiveConnector -Identity <Receive Connector Identity>).AuthMechanism $AuthMechanism += "TLS" Set-ReceiveConnector -Identity <Receive Connector Identity> -AuthMechanism $AuthMechanism
您也可以在指定接收連接器的 [驗證] 索引標籤上選取 [傳輸安全性層 (TLS) ],將 AuthMechanism 屬性的值設定為 TLS。
如果 TLS 未啟用為驗證機制,伺服器就不會在 SMTP 工作階段中向傳送伺服器公告 X-STARTTLS ,也不會載入任何憑證。
當您執行下列命令時,憑證選取程式會從 Receive 連接器組態擷取 TlsCertificateName 值:
Get-ReceiveConnector -Identity <Receive Connector Identity> | fl TlsCertificateName
您也可以執行下列步驟,在 Receive 連接器上設定 TlsCertificateName 值:
擷取已啟用 SMTP 之有效第三方憑證的指紋。
執行下列命令:
$TLSCert = Get-ExchangeCertificate -Thumbprint <thumbprint retrieved in the previous step> $TLSCertName = "<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)" Set-ReceiveConnector -Identity <Receive Connector Identity> -TlsCertificateName $TlsCertName
如果 Receive 連接器上的 TlsCertificateName 值為 null,則會擷取 FQDN) (完整功能變數名稱。 如果 FQDN 為 null,您可以設定 FQDN 值。
若要擷取或設定 FQDN 值,請執行下列步驟:
執行下列命令來擷取 FQDN 值:
Get-ReceiveConnector -Identity <Receive Connector Identity> | fl fqdn
執行下列命令來設定 FQDN 值:
Set-ReceiveConnector -Identity <Receive Connector Identity> -fqdn <fqdn value>
如果 Receive 連接器上的 FQDN 值為 Null,則會擷取伺服器的實體 FQDN。
本機計算機證書存儲會搜尋符合 TlsCertificateName/FQDN 的憑證。 如果找不到憑證,伺服器就不會公告 X-STARTTLS、未載入憑證,且應用程式記錄中會記錄 事件標識碼 12014 。
在證書存儲中,會針對具有相符 TlsCertificateName/FQDN 的所有憑證實作搜尋。 從此清單中,會識別合格憑證的清單。 這些合格的憑證必須符合下列準則:
憑證是 X.509 第 3 版或更新版本的憑證。
憑證具備關聯的私密金鑰。
[ 主旨 ] 或 [ 主體替代名稱] 字 段包含先前步驟中擷取的 TlsCertificateName/FQDN 。
憑證已啟用安全套接字層 (SSL) /TLS 使用;具體而言,已使用
Enable-ExchangeCertificate
Cmdlet 為此憑證啟用 SMTP 服務。 您可以執行下列命令來擷取其值,以確認 SMTP 服務是否已啟用:Get-ExchangeCertificate -Thumbprint <value of the thumbprint> | fl Services
如果您發現 SMTP 服務尚未啟用,您可以執行下列命令來手動啟用 SMTP 服務:
Enable-ExchangeCertificate -Thumbprint <value of the thumbprint> -Services "SMTP"
注意事項
如果 TlsCertificateName/FQDN 相符的憑證未啟用 SMTP 服務,Exchange 仍會針對 STARTTLS 選擇該憑證,但 TLS 通訊在稍後階段將會失敗。
如果在這些檢查之後找不到符合資格的憑證,則會導致伺服器無法在未載入憑證的情況下公告 X-STARTTLS ,且 事件標識碼 12014 會記錄在應用程式記錄檔中。
如果找到合格的憑證,則會根據下列順序選取最佳憑證:
- 依最近的 Valid from 日期排序合格憑證。 [有效來源 ] 是憑證上的 [第 1 版] 欄位。
- 使用此清單中找到的第一個有效公鑰基礎結構 (PKI) 憑證。
- 如果找不到有效的 PKI 憑證,則會使用第一個自行簽署憑證。
系統會檢查憑證是否已過期。 憑證屬性中的 [ 有效到 ] 字段會與目前的日期和時間進行比較。 如果憑證尚未過期, 則會公告 STARTTLS 。 如果憑證已過期, 事件標識碼 12016 會記錄在應用程式記錄檔中,但仍會公告 STARTTLS 。
重要事項
如果憑證已過期,無論 STARTTLS 是否已公告,您都必須更新憑證。 如需如何更新憑證的資訊,請參閱更新 Exchange Server 憑證。
設定 FQDN 屬性的值
若要設定 FQDN 屬性的值,請執行下列命令:
Set-ReceiveConnector -Identity <Receive Connector Identity> -fqdn <fqdn value>
其他相關資訊
如需如何針對其他 TLS 案例選取憑證的詳細資訊,請參閱下列文章: