要約
Microsoft Exchange Server用の 2023 年 1 月のセキュリティ更新プログラム (SU) から、管理者が PowerShell シリアル化ペイロードの証明書ベースの署名を構成できるようにする新機能が導入されました。 この機能は、すべての Exchange ベースのサーバーに SU がインストールされた後、Exchange Server管理者が手動で有効にする必要があります。 この記事では、Exchange Serverで PowerShell シリアル化データの証明書ベースの署名を有効にする手順について説明します。
前提条件
この機能を有効にする前提条件:
-
環境内のすべての Exchange ベースのサーバーに、2023 年 1 月の SU 以降の SU がインストールされていることを確認します。 すべてのサーバーを更新する前にこの機能を有効にすると、逆シリアル化エラーが発生し、他の問題が発生する可能性があります。
-
証明書署名を有効にする前と後に、有効なExchange Server認証証明書が構成され、すべての Exchange ベースのサーバー (エッジ トランスポート サーバーを除く) で使用できることを確認します。
MonitorExchangeAuthCertificate.ps1 スクリプトを実行して、環境内の Exchange ベース サーバーで有効な認証証明書をチェックできます。 このスクリプトでは、認証証明書の有効期限が 60 日未満かどうかも確認され、証明書をローテーションするのに役立ちます。 MonitorExchangeAuthCertificate.ps1の詳細については、「Exchange AuthCertificate の監視」を参照してください。
認証証明書の可用性と有効性を手動でチェックするには、「認証証明書の可用性と有効性」を参照してください。
MonitorExchangeAuthCertificate.ps1 スクリプトを使用することを強くお勧めします (または、必要に応じて新しいスクリプトを作成します)。 これは、スクリプトが期限切れの認証証明書を更新することもできるためです。 スクリプトには手動実行モードが含まれています (認証証明書の可用性を確認するか、必要に応じて検証してアクションを実行します)。 このスクリプトには、Windows タスク スケジューラを使用して動作する自動化モードも含まれています。
解決方法
Exchange Server 2019 または Exchange Server 2016 を実行しているサーバーの場合 (2023 年 1 月の SU 以降に更新)
-
環境内でExchange Serverを実行しているサーバーで、Exchange Management Shell (EMS) で次のコマンドレットを実行します。 New-SettingOverride -Name "EnableSigningVerification" -Component Data -Section EnableSerializationDataSigning -Parameters @("Enabled=true") -Reason "Enabling Signing Verification" このコマンドレットを使用すると、環境内で 2019、2016、または 2013 Exchange Server実行されているすべてのサーバーで、PowerShell シリアル化ペイロードの証明書署名が可能になります。 すべてのサーバーでコマンドレットを実行する必要はありません。
-
次のコマンドレットを実行して VariantConfiguration 引数を更新します:Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh
-
新しい設定を適用するには、World Wide Web Publishing サービスと Windows プロセス ライセンス認証サービス (WAS) を再起動します。 これを行うには、次のコマンドレットを実行します: Restart-Service -Name W3SVC, WAS -Force
注: これらのサービスは、設定オーバーライド コマンドレットが実行されているExchange Server ベースのサーバーでのみ再起動します。
Exchange Server 2013 を実行しているサーバーの場合
環境内Microsoft Exchange Server 2013 を実行しているサーバーがある場合は、各サーバーでレジストリ キーを構成する必要があります。 次の設定を指定します。
レジストリ キー:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Diagnostics
値:EnableSerializationDataSigning
型: String
データ: 1
Exchange Server 2013 ベースのサーバーでレジストリ値を作成するには、次のコマンドレットを実行します。
- New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Diagnostics -Name "EnableSerializationDataSigning" -Value 1 -Type String
新しい設定を適用するには、World Wide Web Publishing サービスと Windows プロセス ライセンス認証サービス (WAS) を再起動します。 これを行うには、以下のコマンドレットを実行します。
- Restart-Service -Name W3SVC, WAS -Force
注: レジストリの変更が行われる環境内のすべてのExchange Server 2013 ベースのサーバーで、これらのサービスを再起動します。
既知の問題
-
シリアル化データに署名する機能が有効になっている場合、有効期限が切れた認証証明書を使用すると、Get-ExchangeCertificate コマンドレットが証明書の詳細を返すのを防ぐことができます。
-
2023 年 1 月または 2023 年 2 月のセキュリティ更新プログラム (Microsoft Exchange Server 2019、2016、または 2013) がインストールされ、PowerShell シリアル化ペイロードの証明書署名が有効になった後、Exchange ツールボックスとキュー ビューアーは起動しません。 詳細については、「PowerShell シリアル化ペイロードの証明書署名が有効になった後に Exchange ツールボックスとキュー ビューアーが失敗する (KB5023352)」を参照してください。
-
シリアル化データに署名する機能が有効になっている場合、Get-ExchangeCertificate コマンドレットは、Exchange 管理ツールがインストールされているが、他のExchange Serverの役割を持たないコンピューターで実行されている場合、表示される値を返しません。 これは、認証証明書が有効かどうかに関係なく発生します。
-
Exchange Serverに含まれている一部のスクリプト (たとえば、RedistributeActiveDatabases.ps1) は、次の条件に該当する場合に正しく動作しません。
-
PowerShell シリアル化ペイロードの署名機能が有効になっています。
-
Exchange RBAC によって提供される既定のセキュリティ グループは使用しません。
-
スクリプトを実行するユーザーは、Organization Management ロール グループのメンバーではありません。
-