フェデレーション証明書を更新する

このトピックでは、フェデレーション信頼で使用した自己署名入りのフェデレーション証明書の更新の方法を説明します。

  • フェデレーション証明書の有効期限が切れていないければ、「作業中のフェデレーション証明書の更新」のセクションの手順に従ってください。

  • フェデレーション証明書が既に有効期限切れの場合は、「有効期限切れのフェデレーション証明書の置き換え」のセクションの手順に従ってください。

注:

設計上、証明書を更新した後、フェデレーション信頼に関連付けられている期限切れの証明書をフェデレーション信頼オブジェクトから削除することはできません。

フェデレーション信頼とフェデレーションについての詳細は、「フェデレーション」を参照してください。

はじめに把握しておくべき情報

  • 予想所要時間 : 10 分。

  • この手順を実行する際には、あらかじめアクセス許可が割り当てられている必要があります。 必要なアクセス許可を確認するには、「 Exchange とシェルのインフラストラクチャのアクセス許可 」トピックの「フェデレーションと証明書」エントリを参照してください。

  • このトピックの手順では Exchange 管理シェル を使います。 オンプレミスの Exchange 組織で Exchange 管理シェル を開く方法については、「 Open the Shell」を参照してください。

  • 既存のフェデレーション証明書の有効期限が切れているかどうかを確かめるには、Exchange 管理シェル で次のコマンドを実行します。

    Get-ExchangeCertificate -Thumbprint (Get-FederationTrust).OrgCertificate.Thumbprint | Format-Table -Auto Thumbprint,NotAfter
    
  • このトピックの手順で使用可能なキーボード ショートカットについては、「Exchange 管理センターのキーボード ショートカット」を参照してください。

警告

問題がある場合は、 Exchange のフォーラムで質問してください。 Exchange Serverのフォーラムにアクセスしてください。

作業中のフェデレーション証明書の更新

フェデレーション証明書の有効期限が切れていない場合は、新しいフェデレーションの証明書で既存のフェデレーション信頼を更新できます。

手順 1:新しいフェデレーション証明書を作成する

Exchange 管理シェル で次のコマンドを実行して、新しいフェデレーション証明書を作成します。

$SKI = [System.Guid]::NewGuid().ToString("N"); New-ExchangeCertificate -DomainName 'Federation' -FriendlyName "Exchange Delegation Federation" -Services Federation -SubjectKeyIdentifier $SKI -PrivateKeyExportable $true

構文およびパラメーターの詳細については、「New-ExchangeCertificate」を参照してください。

コマンド出力には、新しい証明書の拇印値が含まれます。 この値は、残りの手順で必要になり、次のようにして Exchange 管理シェル ウィンドウから直接コピーすることができます。

  1. Exchange 管理シェル ウィンドウの任意の場所で右クリックし、表示されるダイアログ ボックスで [マーク] を選択します。

  2. 拇印値を選択し、Enter キーを押します。

このトピックの他の手順では、フェデレーション証明書の拇印の値 を使用します。 6A99CED2E4F2B5BE96C5D17D662D217EF58B8F73 実際の証明書の拇印値は異なります。

手順 2:新しい証明書をフェデレーション証明書として構成する

Exchange 管理シェル を使って、新しい証明書をフェデレーション証明書として構成するには、次の構文を使用します。

Set-FederationTrust -Identity "Microsoft Federation Gateway" -Thumbprint <Thumbprint> -RefreshMetaData

この例では、手順 1 の証明書拇印の値 6A99CED2E4F2B5BE96C5D17D662D217EF58B8F73 を使用します。

Set-FederationTrust -Identity "Microsoft Federation Gateway" -Thumbprint 6A99CED2E4F2B5BE96C5D17D662D217EF58B8F73 -RefreshMetaData

構文およびパラメーターの詳細については、「Set-FederationTrust」を参照してください。

メモ: コマンド出力には、DNS のドメイン所有権の証明 TXT レコードを更新する必要があることを示す警告が含まれています。 これは、次の手順で行います。

手順 3:外部の DNS で、フェデレーションのドメイン所有権証明 TXT レコードを更新します。

ドメイン所有権証明 TXT レコードはアクティブ化 (手順 5) の際にのみチェックされるため、この段階では安全にこの手順を実行できます。 ただし、TXT レコードを更新した後、次の手順を続行する前に、更新した TXT レコードが伝達されるまで待つ (その時間は DNS レコードの TTL (time to live) の値に応じる) 必要があります。

  1. Exchange 管理シェル で次のコマンドを実行して、必要な TXT レコードに必要な値を調べます。

    Get-FederatedDomainProof -DomainName <Domain> | Format-List Thumbprint,Proof
    

    たとえば、フェデレーション ドメインが contoso.edu であれば次のコマンドを実行します。

    Get-FederatedDomainProof -DomainName contoso.com | Format-List Thumbprint,Proof
    

    コマンド出力は次のようになります。

    Thumbprint : <new certificate thumbprint> (for example, 6A99CED2E4F2B5BE96C5D17D662D217EF58B8F73)
    
    Proof      : <new hash text> (for example, znMfbkgSbOQSsWFdsW+gm3to0nZSdE3zbcPPHGVAqdgsLFGsCPuLHiyVbKoPmgyZKX90NH2g1PbCZH0YTQF6oA==)
    
    Thumbprint : <old certificate thumbprint> (for example, CC9BC204BB4DC60D06FC1F10F3C373DC785DA2A5)
    
    Proof      : <old hash text> (for example, m4gZX7OLr9iOWYJMVjEklQpoSkPb5hSbcFjD7Q3/vsqmdJ2Z+HcSt7j5pzBKFmEW2s27JYr3xsK2POzAI/8Ffw==)
    

    コマンド出力は、2 つのドメイン所有権証明レコードの情報を返します。1 つは新しい証明書用、もう 1 つは置き換える現在の証明書用です。 外部 (パブリック) DNS のドメイン所有権 TXT レコードの現在の証明で構成されている拇印値とハッシュ テキスト値によって、どれがどれであるかを確認できます。

  2. 外部 DNS で、フェデレーションのドメイン所有権証明 TXT レコードを更新します。 DNS プロバイダーによって手順は異なりますが、現在の TXT レコードを編集して、現在のハッシュ テキスト値を新しいハッシュ テキスト値に置き換えることができます。 詳細については、「Office 365 の外部ドメイン ネーム システム レコード」の Exchange Online のセクションを参照してください。

手順 4:新しいフェデレーション証明書がすべての Exchange サーバーに配布されているか確認します。

Exchange は新しいフェデレーション証明書を自動的にすべてのサーバーに配布しますが、次に進む前に配布の確認をする必要があります。

Exchange 管理シェル を使って、新しいフェデレーション証明書の配布を確認するために、次のコマンドを実行します。

$Servers = Get-ExchangeServer; $Servers | foreach {Get-ExchangeCertificate -Server $_ | Where {$_.Services -match 'Federation'}} | Format-List Identity,Thumbprint,Services,Subject

メモ: Exchange 2010 では、 Test-FederationCertificate コマンドレットの出力にサーバー名が含まれています。 Exchange 2013 以降でのこのコマンドレット出力には、サーバー名は含まれません。

手順 5:新しいフェデレーション証明書をアクティブ化する

Exchange 管理シェル で新しいフェデレーション証明書をアクティブ化するために次のコマンドを実行します。

Set-FederationTrust -Identity "Microsoft Federation Gateway" -PublishFederationCertificate

構文およびパラメーターの詳細については、「Set-FederationTrust」を参照してください。

メモ: コマンド出力には、DNS (手順 3 で既に行った) のドメイン所有権の証明 TXT レコードを更新する必要があることを示す警告が含まれています。

正常な動作を確認する方法

既存のフェデレーション信頼が新しいフェデレーション証明書で正常に更新されたかを確かめるためには、以下の手順に従います。

  • Exchange 管理シェル で、次のコマンドを実行して、新しい証明書が使用されていることを確認します。

    Get-FederationTrust | Format-List *priv*
    
    • OrgPrivCertificate プロパティには、新しいフェデレーション証明書の拇印を含める必要があります。

    • OrgPrevPrivCertificate プロパティには、古い (置き換え済みの) フェデレーション証明書の拇印を含める必要があります。

  • Exchange 管理シェルで、ユーザーのメール アドレス>を組織内のユーザーのメール アドレスに置き換え<、次のコマンドを実行して、フェデレーション信頼が機能していることを確認します。

    Test-FederationTrust -UserIdentity <user's email address>
    

有効期限切れのフェデレーション証明書の置き換え

フェデレーション証明書の有効期限が既に切れている場合は、フェデレーション信頼からすべてのフェデレーション ドメインを削除し、フェデレーション信頼を削除して作成し直す必要があります。

  1. 複数のフェデレーション ドメインを使っている場合は、プライマリ共有ドメインを識別しておいて、このドメインは最後に削除する必要があります。 Exchange 管理シェル を使ってプライマリ共有ドメインとすべてのフェデレーション ドメインを識別するには、次のコマンドを実行します。

    Get-FederatedOrganizationIdentifier | Format-List AccountNamespace,Domains
    

    AccountNamespace プロパティの値には、 形式FYDIBOHF25SPDLT<primary shared domain>のプライマリ共有ドメインが含まれています。 たとえば、 の値 FYDIBOHF25SPDLT.contoso.comでは、contoso.com はプライマリ共有ドメインです。

  2. Exchange 管理シェル で次のコマンドを実行して、プライマリ共有ドメインではない各フェデレーション ドメインを削除します。

    Remove-FederatedDomain -DomainName <domain> -Force
    
  3. プライマリ共有ドメイン以外のすべてのフェデレーション ドメインを削除した後で、Exchange 管理シェル で次のコマンドを実行してプライマリ共有ドメインを削除します。

    Remove-FederatedDomain -DomainName <domain> -Force
    
  4. Exchange 管理シェル で次のコマンドを実行してフェデレーション信頼を削除します。

    Remove-FederationTrust "Microsoft Federation Gateway"
    
  5. フェデレーション信頼を再作成します。 手順については、「 フェデレーション信頼の構成」を参照してください。