Exchange Server OAuth 証明書を維持する

一般情報

このドキュメントでは、Exchange サービスを中断することなく、現在の証明書の有効期限が切れる前に、Exchange Server認証証明書をローテーションするために必要な手順について説明します。

ヒント

MonitorExchangeAuthCertificate スクリプトを使用することもできます。 OAuth 証明書を自動的にローテーションする必要な手順を実行します。 また、OAuth 証明書の有効期限が既に切れている場合は、その証明書を置き換えるのにも役立ちます。

認証構成と認証証明書は、Open Authorization (OAuth) プロトコル標準を使用してサーバー間認証を有効にするために、Microsoft Exchange サーバーによって使用されます。 詳細については、次の記事を参照してください。SharePoint と Exchange の統合を計画し、Skype for Business

認証証明書は、いくつかのExchange Serverセキュリティ機能でも使用されます。

最初の Exchange サーバーのインストール中に、セットアップ ルーチンによってフレンドリ名 Microsoft Exchange Server Auth Certificateが付いた自己署名証明書が生成され、新しい認証構成に追加されます。 この証明書は、Exchange organization内のすべてのフロントエンド サーバーに自動的にレプリケートされます。 Exchange 証明書サービスレットは、プロセスの一部であるレプリケーションを MSExchangeServiceHost 実行します。 Exchange organization にサーバーを追加すると、servicelet は証明書をすべての Exchange サーバーにレプリケートし、organizationに追加します。

現在の認証証明書として構成されている証明書は、次の PowerShell (Exchange 管理シェルで実行する必要があります) クエリを実行して照会できます。

(Get-AuthConfig).CurrentCertificateThumbprint | Get-ExchangeCertificate | Format-List Subject, Thumbprint, NotAfter, NotBefore

呼び出しが次の警告で失敗した場合は、現在の認証証明書がサーバーに存在しません。

A special Rpc error occurs on server <Servername>: The certificate with thumbprint <AuthCertificateThumbprint> was not found.

修正するには、「現在の証明書の有効期限が既に切れているか、不足している場合に従う手順は何ですか」セクションに記載されている手順に従ってください。

次の認証証明書として構成されている証明書は、次のように照会できます。

(Get-AuthConfig).NextCertificateThumbprint | Get-ExchangeCertificate | Format-List Subject, Thumbprint, NotAfter, NotBefore

現在の認証証明書と同じ警告で呼び出しが失敗した場合は、次の認証証明書が構成されていないか、サーバーに存在しないことを意味します。

現在の認証証明書の有効期限が切れようとしている場合は、「Exchange Server認証証明書をローテーションする方法」に記載されている手順に従います。

現在の証明書の有効期限が既に切れているか、不足している場合は、どのような手順を実行する必要がありますか?

この場合は、古い認証証明書を新しい認証証明書に直ちに置き換える必要があります。 次のサポート記事の解決策に関するセクションに記載されている手順に従ってください。OAuth 証明書の有効期限が切れている場合はOutlook on the webまたは EAC にサインインできませんExchange Server

Exchange Server認証証明書をローテーションする方法

有効期限が切れる前に、アクティブな認証証明書を新しい認証証明書に置き換える必要があります。 これにより、Exchange サービスを中断することなく、新しい証明書へのスムーズな移行が保証されます。 次の手順に従って、新しい認証証明書を準備してステージングできます。

重要

対応する Exchange 機能に影響する修正プログラムが含まれているため、最新のExchange Server累積的な更新プログラム (CU) がインストールされていることを確認してください。

  1. 次のコマンドを実行して、新しい認証証明書を生成します。

    $newAuthCertificate = New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName @()
    
  2. 既存の既定の SMTP 証明書を上書きしないでください (「N」と入力して Enter キーを押します)。

    Confirm
    Overwrite the existing default SMTP certificate?
    
    Current certificate: '<DefaultSMTPCertificateThumbprint>' (expires 12/30/2027 2:39:08 PM)
    Replace it with certificate: '<NewCertificateThumbprint>' (expires 1/5/2028 9:04:48 AM)
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): N
    
  3. 49 時間以内に新しいアクティブ証明書になるように認証証明書を構成します。

    Set-AuthConfig -NewCertificateThumbprint $newAuthCertificate.Thumbprint -NewCertificateEffectiveDate (Get-Date).AddHours(49)
    

注:

Exchange organizationのサイズによっては、新しい認証証明書がすべての Exchange サーバーに展開されるまでに時間がかかる場合があります。 新しく生成された認証証明書がアクティブになるまでの少なくとも 48 時間を計画することをお勧めします。

プロセスの一部 MSExchangeServiceHost でもある Exchange AuthAdmin サービスレットは、最終的な認証証明書発行プロセスを担当します。 サービスが再起動されると、サービスレットが直ちに MSExchangeServiceHost 実行されます。 その後、12 時間ごとに実行され、 に達したことを NewCertificateEffectiveDate 検出すると、新しい認証証明書が発行され、新しい認証証明書が新しくアクティブになります。

次の PowerShell コマンドレットを実行して、AuthAdmin サービスレットの最後のランタイムを照会できます。

[xml]$xml = Get-ExchangeDiagnosticInfo -Process "Microsoft.Exchange.ServiceHost"
$xml.Diagnostics.Components.AnchorApplication.AnchorServiceComponents.CacheScheduler.lastRunTime

AuthAdmin サービスレットの各実行は、次のディレクトリに記録されます。 <ExchangeInstallPath>\Logging\AuthAdminLogs

認証証明書のローテーションが正常に完了すると、servicelet によって新しいイベント ログ エントリが生成されます。

Log Name:      Application
Source:        MSExchange AuthAdmin
Date:          12/29/2022 5:56:13 AM
Event ID:      2014
Task Category: General
Level:         Information
Keywords:      Classic
User:          N/A
Description:   The current signing certificate for Exchange has been updated to certificate with thumbprint <NewExchangeCertificateThumbprint>.

注:

AuthAdmin サービスレットを起動できるようにするには、Exchange サーバーが子ドメインにインストールされ、システム メールボックスがルート ドメインに配置されている場合に AuthAdminReadSession を有効にする必要があります。 そうしないと、AuthAdmin サービスレットを起動できません。

Set-OrganizationConfig -EnableAuthAdminReadSession:$true

よく寄せられる質問

質問: 認証証明書が置き換えられた後、ハイブリッド構成ウィザード (HCW) を再実行する必要がありますか?

答え: はい。アクティブな認証証明書が置き換えられた後、ハイブリッド構成ウィザード (HCW) を実行することを強くお勧めします。

質問: 別の Active Directory (AD) サイトの Exchange サーバーに新しい認証証明書が見つからない場合はどうすればよいですか?

答え:Export-ExchangeCertificate コマンドレットを使用して証明書をエクスポートし、他の AD サイトのサーバー上の Import-ExchangeCertificate を使用して証明書をインポートできます。 証明書サービスレットは、AD サイト内にある残りの Exchange サーバーへのレプリケーションを処理します。