分享方式:


在 Windows Server 2016 中管理 AD FS 和 WAP 的 TLS/SSL 憑證

本文說明如何將新的 TLS/SSL 憑證部署到您的 Active Directory 同盟服務 (AD FS) 和 Web 應用程式 Proxy (WAP) 伺服器。

注意

取代 TLS/SSL 憑證順應 AD FS 伺服器陣列的建議方式是使用 Microsoft Entra Connect。 如需詳細資訊,請參閱更新 Active Directory 同盟服務 (AD FS) 伺服器陣列的 TLS/SSL 憑證

取得 TLS/SSL 憑證

針對生產 AD FS 伺服器陣列,建議使用公開信任的 TLS/SSL 憑證。 AD FS 會將憑證簽署要求 (CSR) 提交給協力廠商公開憑證提供者,以取得此憑證。 有各種方式可以產生 CSR,包括從 Windows 7 或更新版本電腦產生 CSR。 您的廠商應該有此程序的文件。

所需的憑證

您應該在所有 AD FS 和 WAP 伺服器上使用通用 TLS/SSL 憑證。 如需詳細需求,請參閱 AD FS 和 Web 應用程式 Proxy TLS/SSL 憑證需求

TLS/SSL 憑證需求

如需了解需求,包括命名信任和延伸模組的根目錄,請參閱 AD FS 和 Web 應用程式 Proxy TLS/SSL 憑證需求

取代 AD FS 的 TLS/SSL 憑證

注意

AD FS TLS/SSL 憑證與 AD FS 管理嵌入式管理單元中找到的 AD FS 服務通訊憑證不同。 若要變更 AD FS TLS/SSL 憑證,您必須使用 PowerShell。

首先,判斷您的 AD FS 伺服器是否執行預設憑證驗證繫結模式或替代用戶端 TLS 繫結模式。

取代在預設憑證驗證繫結模式中執行的 AD FS TLS/SSL 憑證

AD FS 預設會在連接埠 443 上執行裝置憑證驗證,以及在連接埠 49443 上執行使用者憑證驗證 (或非 443 的可設定連接埠)。 在此模式中,使用 PowerShell Cmdlet Set-AdfsSslCertificate 來管理 TLS/SSL 憑證,如下列步驟所示:

  1. 首先,您必須取得新的憑證。 您可以將憑證簽署要求 (CSR) 提交給協力廠商公開憑證提供者,以取得此憑證。 有各種方式可以產生 CSR,包括從 Windows 7 或更新版本電腦產生 CSR。 您的廠商應該有此程序的文件。

  2. 從憑證提供者取得回應之後,請將其匯入每個 AD FS 和 WAP 上的本機電腦存放區中。

  3. 主要 AD FS 伺服器上,使用下列 Cmdlet 來安裝新的 TLS/SSL 憑證:

Set-AdfsSslCertificate -Thumbprint '<thumbprint of new cert>'

您可以執行此命令來找到憑證指紋:

dir Cert:\LocalMachine\My\

取代替代 TLS 繫結模式中所執行 AD FS 的 TLS/SSL 憑證

在替代用戶端 TLS 繫結模式中設定時,AD FS 會在連接埠 443 上執行裝置憑證驗證。 其也會在不同的主機名稱上,在連接埠 443 上執行使用者憑證驗證。 使用者憑證主機名稱是前面加上 certauth 的 AD FS 主機名稱,例如 certauth.fs.contoso.com。 在此模式中,使用 PowerShell Cmdlet Set-AdfsAlternateTlsClientBinding 來管理 TLS/SSL 憑證。 此 Cmdlet 不僅會管理替代用戶端 TLS 繫結,也會管理 AD FS 設定 TLS/SSL 憑證的所有其他繫結。

使用下列步驟來取代替代 TLS 繫結模式中所執行 AD FS 的 TLS/SSL 憑證。

  1. 首先,您必須取得新的憑證。 您可以將憑證簽署要求 (CSR) 提交給協力廠商公開憑證提供者,以取得此憑證。 有各種方式可以產生 CSR,包括從 Windows 7 或更新版本電腦產生 CSR。 您的廠商應該有此程序的文件。

  2. 從憑證提供者取得回應之後,請將其匯入每個 AD FS 和 WAP 上的本機電腦存放區中。

  3. 主要 AD FS 伺服器上,使用下列 Cmdlet 來安裝新的 TLS/SSL 憑證:

Set-AdfsAlternateTlsClientBinding -Thumbprint '<thumbprint of new cert>'

您可以執行此命令來找到憑證指紋:

dir Cert:\LocalMachine\My\

預設憑證驗證繫結和替代 TLS 繫結模式中 TLS/SSL 憑證的其他考量

  • Set-AdfsSslCertificateSet-AdfsAlternateTlsClientBinding Cmdlet 是多節點 Cmdlet,因此其只需要從主要節點執行。 Cmdlet 也會更新伺服器陣列中的所有節點。 此變更是 Server 2016 的新功能。 在 Server 2012 R2 上,您必須在每個伺服器上執行 Cmdlet。
  • Set-AdfsSslCertificateSet-AdfsAlternateTlsClientBinding Cmdlet 必須只在主伺服器上執行。 主伺服器必須執行 Server 2016,您應該將伺服器陣列行為層級提高到 2016。
  • Set-AdfsSslCertificateSet-AdfsAlternateTlsClientBinding Cmdlet 會使用 PowerShell 遠端功能來設定其他 AD FS 伺服器,請確定其他節點上已開啟連接埠 5985 (TCP)。
  • Set-AdfsSslCertificateSet-AdfsAlternateTlsClientBinding Cmdlet 會將 adfssrv 主體讀取權限授與 TLS/SSL 憑證的私密金鑰。 此主體代表 AD FS 服務。 您不必將 TLS/SSL 憑證私密金鑰的讀取權限授與 AD FS 服務帳戶。

取代 Web 應用程式 Proxy 的 TLS/SSL 憑證

如果您想要同時設定這兩者 (預設憑證驗證繫結或 WAP 上的替代用戶端 TLS 繫結模式),您可以使用 Set-WebApplicationProxySslCertificate Cmdlet。 若要取代每個 WAP 伺服器上的 WAP TLS/SSL 憑證,請使用下列 Cmdlet 來安裝新的 TLS/SSL 憑證:

Set-WebApplicationProxySslCertificate -Thumbprint '<thumbprint of new cert>'

如果上述 Cmdlet 因為舊憑證已過期而失敗,請使用下列 Cmdlet 重新設定 Proxy:

$cred = Get-Credential

輸入 AD FS 伺服器上本機系統管理員的網域使用者認證

Install-WebApplicationProxy -FederationServiceTrustCredential $cred -CertificateThumbprint '<thumbprint of new cert>' -FederationServiceName 'fs.contoso.com'