共用方式為


輸入 STARTTLS 憑證的選取專案

適用於:是-img-16 2016是-img-192019 是-img-se訂閱版本

重要事項

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 的憑證選取程式步驟:

顯示選取輸入入門憑證程式步驟的螢幕快照。

上述圖表中所述的步驟如下所述:

  1. 建立 SMTP 工作階段時,Microsoft Exchange 會呼叫行程來載入憑證。

  2. 在「載入憑證」函式中,會檢查會話所連接的接收連接器,以查看 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 ,也不會載入任何憑證。

  3. 當您執行下列命令時,憑證選取程式會從 Receive 連接器組態擷取 TlsCertificateName 值:

    Get-ReceiveConnector -Identity <Receive Connector Identity> | fl TlsCertificateName
    

    您也可以執行下列步驟,在 Receive 連接器上設定 TlsCertificateName 值:

    1. 擷取已啟用 SMTP 之有效第三方憑證的指紋。

    2. 執行下列命令:

      $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
      
  4. 如果 Receive 連接器上的 TlsCertificateName 值為 null,則會擷取 FQDN) (完整功能變數名稱。 如果 FQDN 為 null,您可以設定 FQDN 值。

    若要擷取或設定 FQDN 值,請執行下列步驟:

    1. 執行下列命令來擷取 FQDN 值:

      Get-ReceiveConnector -Identity <Receive Connector Identity> | fl fqdn
      
    2. 執行下列命令來設定 FQDN 值:

      Set-ReceiveConnector -Identity <Receive Connector Identity> -fqdn <fqdn value>
      
  5. 如果 Receive 連接器上的 FQDN 值為 Null,則會擷取伺服器的實體 FQDN。

  6. 本機計算機證書存儲會搜尋符合 TlsCertificateName/FQDN 的憑證。 如果找不到憑證,伺服器就不會公告 X-STARTTLS、未載入憑證,且應用程式記錄中會記錄 事件標識碼 12014

  7. 在證書存儲中,會針對具有相符 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 通訊在稍後階段將會失敗。

  8. 如果在這些檢查之後找不到符合資格的憑證,則會導致伺服器無法在未載入憑證的情況下公告 X-STARTTLS ,且 事件標識碼 12014 會記錄在應用程式記錄檔中。

  9. 如果找到合格的憑證,則會根據下列順序選取最佳憑證:

    1. 依最近的 Valid from 日期排序合格憑證。 [有效來源 ] 是憑證上的 [第 1 版] 欄位。
    2. 使用此清單中找到的第一個有效公鑰基礎結構 (PKI) 憑證。
    3. 如果找不到有效的 PKI 憑證,則會使用第一個自行簽署憑證。
      1. 系統會檢查憑證是否已過期。 憑證屬性中的 [ 有效到 ] 字段會與目前的日期和時間進行比較。 如果憑證尚未過期, 則會公告 STARTTLS 。 如果憑證已過期, 事件標識碼 12016 會記錄在應用程式記錄檔中,但仍會公告 STARTTLS

        重要事項

        如果憑證已過期,無論 STARTTLS 是否已公告,您都必須更新憑證。 如需如何更新憑證的資訊,請參閱更新 Exchange Server 憑證

設定 FQDN 屬性的值

若要設定 FQDN 屬性的值,請執行下列命令:

Set-ReceiveConnector -Identity <Receive Connector Identity> -fqdn <fqdn value>

其他相關資訊

如需如何針對其他 TLS 案例選取憑證的詳細資訊,請參閱下列文章: