更新同盟憑證

本主題說明如何更新同盟信任中使用的自我簽署同盟憑證:

  • 如果同盟憑證尚未過期,請遵循更新工作同盟憑證一節中的步驟。

  • 如果同盟憑證已過期,請遵循取代過期的同盟憑證一節中的步驟。

注意事項

根據設計,更新憑證之後,無法從同盟信任物件中移除與同盟信任相關聯的過期憑證。

如需同盟信任和同盟的詳細資訊,請參閱 同盟

開始之前有哪些須知?

  • 預估完成時間:10 分鐘。

  • 您必須已獲指派權限,才能執行此程序或這些程序。 若要查看您需要的許可權,請參閱 Exchange 和 Shell 基礎 結構許可權主題中的專案。

  • 本主題中的程式使用 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 記錄之後,以及繼續進行下一個步驟之前,您必須根據 DNS 記錄) 的存留時間或 TTL 值,讓更新的 TXT 記錄有時間傳播 (。

  1. 在 Exchange 管理命令介面中執行下列命令,以尋找所需 TXT 記錄的必要值:

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

    例如,如果您的同盟網域 contoso.com,請執行下列命令:

    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==)
    

    請注意,命令輸出會傳回兩個網域擁有權證明記錄的資訊:一個用於新憑證,另一個用於您要取代的目前憑證。 您可以分辨哪一個是由指紋值所組成,以及在外部 (公用) 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 Cmdlet 的輸出包含伺服器名稱。 Exchange 2013 或更新版本中 Cmdlet 的輸出不包含伺服器名稱。

步驟 5:啟用新的同盟憑證

若要使用 Exchange 管理命令介面來啟用新的同盟憑證,請執行下列命令:

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

如需詳細的語法和參數資訊,請參閱 Set-FederationTrust

注意: 命令輸出包含警告,您需要更新您已在步驟 3) 中執行的 DNS (網域擁有權 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. 重新建立同盟信任。 如需指示, 請參閱設定同盟信任