Exchange Server 2013 自己署名証明書の更新方法・削除方法について


今回は、Exchange Server 2013 の自己署名証明書の更新についてご紹介致します。

既定の証明書


Exchange Sever 2013 では、以下の証明書が既定でインストールされています。

・ CN=Exchange Server (サーバー名)
・ CN=Microsoft Exchange Server Auth Certificate
・ CN=WMSvc-<サーバー名>

そこで、各証明書の更新方法、および削除方法についてご案内いたします。


証明書の更新手順


CN=Exchange Server (サーバー名) の証明書
1. 任意の Exchange サーバーにて Exchange Management Shell を起動します。

2. 以下のコマンドレットを実行します。

Get-ExchangeCertificate -Server <Server 名> -Thumbprint <更新対象の証明書のThumbprint> | New-ExchangeCertificate -Server <Server 名> -Services <割り当てるサービス>

例) Get-ExchangeCertificate -Server Exchange01 -Thumbprint ********************** | New-ExchangeCertificate -Server Exchange01 -Services IMAP,SMTP,POP

3. 上記コマンドを実行した際に、以下の確認画面が表示されます。

確認
既存の既定の SMTP 証明書を上書きしますか?

現在の証明書 : “現在使用している証明書の Thumbprint” (有効期限:20xx/xx/xx x:xx:xx)
証明書を証明書 “上記コマンドにて作成予定である Thumbprint” (有効期限:20xx/xx/xx x:xx:xx) で置き換えます。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [?] ヘルプ (既定値は “Y”): [ ]

注意点: 上記 [ ] を [Y] と選択した場合、内部トランスポート証明書として設定されます。上記 [ ] を [N] と選択した場合、内部トランスポート証明書としては設定されません。内部トランスポート証明書として設定されていた場合、その証明書を削除することができません。後述の削除手順にも記載しますが、今後削除を行う場合は、別の証明書を内部トランスポート証明書として設定する必要がございます。

CN=Microsoft Exchange Server Auth Certificate の証明書
1. MBX サーバーにて Exchange Management Shell を起動します。

2. 以下のコマンドレットを実行します。

New-ExchangeCertificate -Server <メールボックス サーバー名> -PrivateKeyExportable $True -SubjectName “cn=Microsoft Exchange Server Auth Certificate” -FriendlyName “Microsoft Exchange Server Auth Certificate” DomainName <Exchange 組織で存在するサーバー全てのサーバー名および FQDN > -Services SMTP

例) New-ExchangeCertificate -Server MBX01 -PrivateKeyExportable $True -SubjectName “cn=Microsoft Exchange Server Auth Certificate” -FriendlyName “Microsoft Exchange Server Auth Certificate” -DomainName CAS01,CAS01.contoso.com,MBX01,MBX01.contoso.com -Services SMTP

3. 上記コマンドを実行した際に、以下の確認画面が表示されます。

確認
既存の既定の SMTP 証明書を上書きしますか?

現在の証明書 : “現在使用している証明書の Thumbprint” (有効期限:20xx/xx/xx x:xx:xx)
証明書を証明書 “上記コマンドにて作成予定である Thumbprint” (有効期限:20xx/xx/xx x:xx:xx) で置き換えます。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [?] ヘルプ (既定値は “Y”): [ ]

注意点: “Exchange Server(サーバー名)” の証明書と同様、上記 [ ] を [Y] と選択した場合、内部トランスポート証明書として設定されます。上記 [ ] を [N] と選択した場合、内部トランスポート証明書としては設定されません。内部トランスポート証明書として設定されていた場合、その証明書を削除することができません。後述の削除手順にも記載しますが、今後削除を行う場合は、別の証明書を内部トランスポート証明書として設定する必要がございます。

4. 以下のコマンドレッドを実行します。

4.1. Get-AuthConfig コマンドを実行し、[CurrentCertificateThumbprint] の値を確認致します。
4.2. 以下のコマンドを実行します。

$a=get-date
Set-AuthConfig -NewCertificateThumbprint <上記 2 で作成した自己署名証明書の拇印> -NewCertificateEffectiveDate $a

4.3 上記コマンドを実行する際に、以下の確認画面が表示されます。

確認
新しい証明書の有効開始日が “48”
時間後以降でないため、必要なすべてのサーバー上に展開されない可能性があります。続行しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [?] ヘルプ (既定値は “Y”): [ ]

上記確認画面でございますが、get-date でコマンド実行時の時刻を取得しており、これが Set-AuthConfig コマンドレットの NewCertificateThumbprint で指定した 48 時間以降でない場合に表示されます。
ただし、その後、PublishCertificate オプションを使用して即時反映させるため、同確認プロンプトは [Y] を入力し実行いただくことで問題ございません。

4.4. 以下のコマンドを実行します。

Set-AuthConfig -PublishCertificate -ClearPreviousCertificate

4.5. 再びGet-AuthConfig コマンドを実行し、[CurrentCertificateThumbprint] の値が上記 2 で作成した自己署名証明書の拇印に変更していることを確認してください。

5. この証明書は組織単位での管理となります為、存在する Exchange Server にて [Get-ExchangeCertificate | fl] を実行し、今回作成した証明書が各 Exchange Server に配布されていることを確認してください。

CN=WMSvc-<サーバー名> の証明書
1. 任意の Exchange サーバーにて Exchange Management Shell を起動します。
2. 以下のコマンドレットを実行します。

Get-ExchangeCertificate -Server <Server 名> -Thumbprint <更新対象の証明書のThumbprint> | New-ExchangeCertificate -Server <Server 名> -Services <割り当るサービス>

例) Get-ExchangeCertificate -Server Exchange01 -Thumbprint ********************** | New-ExchangeCertificate -Server Exchange01 -Services None


証明書の削除手順


事前確認
更新手順にて記載しましたように、内部トランスポート証明書として設定されている証明書を削除することができません。仮に、内部トランスポート証明書として設定されている証明書を削除しようとした場合、以下のエラーが記録され削除することができません。

サーバー <サーバー名> 上で特別な RPC エラーが発生しました: Microsoft Exchange Transport サービスを停止させる原因になる可能性があるため、内部トランスポート証明書は削除できません。内部トランスポート証明書を置き換えるには、新しい証明書を作成してください。新しい証明書は、自動的に内部トランスポート証明書になります。その後で、既存の証明書を削除することができます。

内部トランスポート証明書として設定されているかを確認するには、以下の方法で確認が可能です。なお、クライアント アクセス サーバーについては、内部トランスポート証明書として設定されていたとしても、削除時に上記のエラーは発生しませんが、メールボックス サーバーと同様に内部トランスポートとして設定されている場合には変更を行ってください。

-メールボックス サーバーの場合
1. メールボックス サーバー上にて、Exchange 管理コンソールを起動します。
2. 以下のコマンドを実行し、出力結果にある InternalTransportCertificateThumbprint に、削除対象の証明書の Thumbprint が設定されているかで確認することが可能です。

Get-TransportService | fl InternalTransportCertificateThumbprint

– クライアント アクセス サーバーの場合
1. Windows Server 2008 R2 以降のドメイン コントローラー上にて、PowerShell を起動します。
2. 以下のコマンドを実行し、出力結果にある Thumbprint の値を確認します。

Import-Module activedirectory
Get-ADObject -Filter “ObjectClass -eq ‘msExchExchangeServer’ -and name -eq ‘<CAS 名>'” -properties * -SearchBase “CN=Configuration,DC=<Domain>,DC=<Domain>” | % {[Security.Cryptography.X509Certificates.X509Certificate2]$_.msExchServerInternalTLSCert} | fl

例)
Import-Module activedirectory
Get-ADObject -Filter “ObjectClass -eq ‘msExchExchangeServer’ -and name -eq ‘EXCAS1’” -properties * -SearchBase “CN=Configuration,DC=contoso,DC=local” | % {[Security.Cryptography.X509Certificates.X509Certificate2]$_.msExchServerInternalTLSCert} | fl

上記の結果として、削除対象の証明書が内部トランスポートに設定されている場合、以下のコマンドを実行し、内部トランスポート証明書を変更します。

Enable-ExchangeCertificate -Server <Server 名> -Thumbprint “[更新方法] にて更新した証明書の Thumbprint” -Services SMTP

上記コマンドを実行し、再び以下の確認画面が表示され、[Y] を選択することで該当の証明書を削除することができます。

確認
既存の既定の SMTP 証明書を上書きしますか?

現在の証明書 : “MBX サーバーの [CN=Exchange Server (サーバー名) の Thumbprint] ” (有効期限:20xx/xx/xx x:xx:xx)
証明書を証明書 “[更新方法] にて更新した証明書の Thumbprint” (有効期限:20xx/xx/xx x:xx:xx) で置き換えます。
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [?] ヘルプ (既定値は “Y”): [Y]


削除方法
1. 任意の Exchange サーバーにて Exchange Management Shell を起動します。
2. 以下のコマンドレットを実行します。

Remove-ExchangeCertificate -Server <Server 名> -Thumbprint <削除対象の証明書のThumbprint>

上記コマンドを実行後以下の確認画面が表示されますので、[Y] を選択ください。

確認
この操作を実行しますか?
コンピューターの証明書ストアから拇印 “更新対象の証明書のThumbprint” を含む証明書を削除しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [?] ヘルプ (既定値は “Y”): [ ]


以上が、Exchange Server 2013 証明書の Exchange Server 2013 自己署名証明書の更新方法・削除方法となります。


Skip to main content