Exchange Server OAuth 証明書を維持する
一般情報
このドキュメントでは、Exchange サービスを中断することなく、現在のサービスの有効期限が切れる前に Exchange Server 認証証明書をローテーションするために必要な手順について説明します。
ヒント
MonitorExchangeAuthCertificate スクリプトを使用することもできます。 OAuth 証明書を自動的にローテーションする必要な手順を実行します。 また、OAuth 証明書の有効期限が既に切れている場合は、その証明書を置き換えるのにも役立ちます。
認証構成と認証証明書は、Open Authorization (OAuth) プロトコル標準を使用してサーバー間認証を有効にするために、Microsoft Exchange サーバーによって使用されます。 詳細については、SharePoint と Skype for Business との Exchange 統合の計画に関する記事を参照してください。
認証証明書は、いくつかの Exchange Server セキュリティ機能でも使用されます。
最初の Exchange サーバーのインストール中に、セットアップ ルーチンによって、フレンドリ名 Microsoft Exchange Server Auth Certificate
の自己署名証明書が生成され、新しい認証構成に追加されます。 この証明書は、Exchange 組織内のすべてのフロントエンド サーバーに自動的にレプリケートされます。 Exchange 証明書サービスレットは、 MSExchangeServiceHost
プロセスの一部であるレプリケーションを実行します。 Exchange 組織にサーバーを追加すると、Servicelet は、組織に追加されたすべての Exchange サーバーに証明書をレプリケートする処理を行います。
現在の認証証明書として構成されている証明書は、次の 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 認証証明書をローテーションする方法」に 記載されている手順に従います。
現在の証明書の有効期限が既に切れているか、不足している場合は、どのような手順を実行する必要がありますか?
この場合は、古い認証証明書を新しい認証証明書に直ちに置き換える必要があります。 次のサポート記事「Exchange Server OAuth 証明書の有効期限が切れている場合、Outlook on the web または EAC にサインインできない」の「解決策」セクションに記載されている手順に従ってください
Exchange Server 認証証明書をローテーションする方法
有効期限が切れる前に、アクティブな認証証明書を新しい認証証明書に置き換える必要があります。 これにより、Exchange サービスを中断することなく、新しい証明書へのスムーズな移行が保証されます。 次の手順に従って、新しい認証証明書を準備してステージングできます。
重要
対応する Exchange 機能に影響する修正プログラムが含まれているため、最新の Exchange Server 累積的な更新プログラム (CU) がインストールされていることを確認してください。
次のコマンドを実行して、新しい認証証明書を生成します。
$newAuthCertificate = New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName @()
既存の既定の 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
49 時間以内に新しいアクティブ証明書になるように認証証明書を構成します。
Set-AuthConfig -NewCertificateThumbprint $newAuthCertificate.Thumbprint -NewCertificateEffectiveDate (Get-Date).AddHours(49)
Exchange 組織のサイズによっては、新しい認証証明書がすべての Exchange サーバーに展開されるまでに時間がかかる場合があります。 新しく生成された認証証明書がアクティブになるまでの少なくとも 48 時間を計画することをお勧めします。 大規模な Exchange 環境では、さらに時間がかかる場合があります。
認証証明書への参照は、 MSExchangeOWAAppPool
と MSExchangeECPAppPool
アプリケーション プールによってキャッシュされます。 これらのアプリケーション プールをリサイクルして、この参照を更新できます。 これを行うには、管理者特権の PowerShell ウィンドウから次のコマンドを実行します。
Restart-WebAppPool MSExchangeOWAAppPool
Restart-WebAppPool MSExchangeECPAppPool
Exchange AuthAdmin サービスレットは、 MSExchangeServiceHost
プロセスの一部でもありますが、最終的な認証証明書発行プロセスを担当します。 サービスレットは、 MSExchangeServiceHost
サービスが再起動されると直ちに実行されます。 その後、12 時間ごとに実行され、 NewCertificateEffectiveDate
に到達したことを検出すると、新しい認証証明書が発行され、新しい認証証明書が新しくアクティブになります。
AuthAdmin サービスレットを確実に起動するには、Exchange サーバーが子ドメインにインストールされ、システム メールボックスがルート ドメインに配置されている場合に、 AuthAdminReadSession
を有効にする必要があります。 それ以外の場合、AuthAdmin サービスレットを起動できません。 Exchange サーバーが説明されている星座にインストールされている場合は、次の PowerShell コマンドレットを実行します。
Set-OrganizationConfig -EnableAuthAdminReadSession:$true
次の 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>.
よく寄せられる質問
質問: 認証証明書が置き換えられた後、ハイブリッド構成ウィザード (HCW) を再実行する必要がありますか?
答える: はい。アクティブな認証証明書が置き換えられた後、ハイブリッド構成ウィザード (HCW) を実行することを強くお勧めします。
質問: 別の Active Directory (AD) サイトの Exchange サーバーに新しい認証証明書が見つからない場合はどうすればよいですか?
答える:Export-ExchangeCertificate コマンドレットを使用して証明書をエクスポートし、他の AD サイトのサーバー上の Import-ExchangeCertificate を使用して証明書をインポートできます。 証明書サービスレットは、AD サイト内にある残りの Exchange サーバーへのレプリケーションを処理します。