次の方法で共有


受信 STARTTLS 証明書の選択

適用対象:yes-img-162016 yes-img-192019 yes-img-seSubscription Edition

重要

Microsoft Exchange Server 2016 および Microsoft Exchange Server 2019 は、2025 年 10 月 14 日にサポート終了となります。 サポートを維持するには、アップグレードする必要があります。 詳細については、「Exchange 2016 および Exchange Server 2019 のサポート終了」を参照してください。

この記事では、受信サーバーで実行される受信 STARTTLS の証明書選択プロセスについて説明します。 受信 STARTTLS 証明書の選択プロセスは、簡易メール転送プロトコル (SMTP) サーバーが Microsoft Exchange メールボックス サーバーまたは Microsoft Edge トランスポート サーバーとのセキュリティで保護された SMTP セッションを開こうとしたときにトリガーされ、これらのサーバーのいずれかが受信側サーバーとして機能し、TLS ネゴシエーションで使用する証明書の選択プロセスを開始します。

次の図は、受信 STARTTLS の証明書選択プロセスの手順を示しています。

受信スタートtls 証明書を選択するプロセスの手順を示すスクリーンショット。

前の図に示した手順を次に示します。

  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
    

    また、AuthMechanism プロパティの値を TLS に設定するには、特定の受信コネクタの [認証] タブで [トランスポート セキュリティ層 (TLS)] を選択します。

    認証メカニズムとして TLS が有効になっていない場合、サーバーは SMTP セッションの送信側サーバーに X-STARTTLS をアドバタイズせず、証明書は読み込まれません。

  3. 証明書の選択プロセスでは、次のコマンドを実行すると、受信コネクタ構成から TlsCertificateName 値が取得されます。

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

    次の手順を実行して、受信コネクタの 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. 受信コネクタの 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. 受信コネクタの FQDN 値が null の場合、サーバーの物理 FQDN が取得されます。

  6. ローカル コンピューター証明書ストアは、TlsCertificateName/FQDN と一致する証明書を検索します。 証明書が見つからない場合、サーバーは X-STARTTLS をアドバタイズせず、証明書は読み込まれず、 イベント ID 12014 はアプリケーション ログに記録されます。

  7. 証明書ストアでは、一致する TlsCertificateName/FQDN を持つすべての証明書に対して検索が実装されます。 この一覧から、対象となる証明書の一覧が識別されます。 これらの適格な証明書は、次の条件を満たす必要があります。

    • 証明書は X.509 バージョン 3 以降のバージョンの証明書です。

    • 証明書が秘密キーに関連付けられている。

    • [ サブジェクト ] または [ サブジェクト代替名] フィールドには、前の手順で取得した TlsCertificateName/FQDN が含まれています。

    • 証明書は、Secure Sockets Layer (SSL)/TLS の使用に対して有効になっています。具体的には、 Enable-ExchangeCertificate コマンドレットを使用して、この証明書に対して 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 をアドバタイズできず、 イベント ID 12014 がアプリケーション ログに記録されます。

  9. 適格な証明書が見つかった場合は、次の順序に基づいて最適な証明書が選択されます。

    1. 最新の Valid from の日付によって対象となる証明書を並べ替えます。 から有効 なのは、証明書の "バージョン 1" フィールドです。
    2. この一覧で見つかった最初の有効な公開キー 基盤 (PKI) 証明書が使用されます。
    3. 有効な PKI 証明書が見つからない場合、最初の自己署名証明書が使用されます。
      1. 証明書がチェックされ、有効期限が切れているかどうかを確認します。 証明書のプロパティの [有効] フィールドは、現在の日付と時刻と比較されます。 証明書の有効期限が切れていない場合は、 STARTTLS がアドバタイズされます。 証明書の有効期限が切れている場合、 イベント ID 12016 はアプリケーション ログに記録されますが、 STARTTLS は引き続きアドバタイズされます。

        重要

        証明書の有効期限が切れている場合は、 STARTTLS がアドバタイズされているかどうかに関係なく、証明書を更新する必要があります。 証明書を更新する方法については、「Exchange Server証明書の更新」を参照してください。

FQDN プロパティの値の設定

FQDN プロパティの値を設定するには、次のコマンドを実行します。

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

詳細

他の TLS シナリオで証明書を選択する方法の詳細については、次の記事を参照してください。