適用対象:2016
2019
Subscription 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 の証明書選択プロセスの手順を示しています。
前の図に示した手順を次に示します。
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
また、AuthMechanism プロパティの値を TLS に設定するには、特定の受信コネクタの [認証] タブで [トランスポート セキュリティ層 (TLS)] を選択します。
認証メカニズムとして TLS が有効になっていない場合、サーバーは SMTP セッションの送信側サーバーに X-STARTTLS をアドバタイズせず、証明書は読み込まれません。
証明書の選択プロセスでは、次のコマンドを実行すると、受信コネクタ構成から TlsCertificateName 値が取得されます。
Get-ReceiveConnector -Identity <Receive Connector Identity> | fl TlsCertificateName
次の手順を実行して、受信コネクタの 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
受信コネクタの 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>
受信コネクタの FQDN 値が null の場合、サーバーの物理 FQDN が取得されます。
ローカル コンピューター証明書ストアは、TlsCertificateName/FQDN と一致する証明書を検索します。 証明書が見つからない場合、サーバーは X-STARTTLS をアドバタイズせず、証明書は読み込まれず、 イベント ID 12014 はアプリケーション ログに記録されます。
証明書ストアでは、一致する 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 通信は後の段階で失敗します。
これらのチェックの後に適格な証明書が見つからない場合、サーバーは証明書が読み込まれていない 状態で X-STARTTLS をアドバタイズできず、 イベント ID 12014 がアプリケーション ログに記録されます。
適格な証明書が見つかった場合は、次の順序に基づいて最適な証明書が選択されます。
- 最新の Valid from の日付によって対象となる証明書を並べ替えます。 から有効 なのは、証明書の "バージョン 1" フィールドです。
- この一覧で見つかった最初の有効な公開キー 基盤 (PKI) 証明書が使用されます。
- 有効な PKI 証明書が見つからない場合、最初の自己署名証明書が使用されます。
証明書がチェックされ、有効期限が切れているかどうかを確認します。 証明書のプロパティの [有効] フィールドは、現在の日付と時刻と比較されます。 証明書の有効期限が切れていない場合は、 STARTTLS がアドバタイズされます。 証明書の有効期限が切れている場合、 イベント ID 12016 はアプリケーション ログに記録されますが、 STARTTLS は引き続きアドバタイズされます。
重要
証明書の有効期限が切れている場合は、 STARTTLS がアドバタイズされているかどうかに関係なく、証明書を更新する必要があります。 証明書を更新する方法については、「Exchange Server証明書の更新」を参照してください。
FQDN プロパティの値の設定
FQDN プロパティの値を設定するには、次のコマンドを実行します。
Set-ReceiveConnector -Identity <Receive Connector Identity> -fqdn <fqdn value>
詳細
他の TLS シナリオで証明書を選択する方法の詳細については、次の記事を参照してください。