在服务器场之间交换信任证书 (SharePoint Server)

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

在 SharePoint Server 中,服务器场可以连接并使用在其他 SharePoint Server 服务器场上发布的服务应用程序。 为此,服务器场必须交换信任证书。

这两个服务器场必须都参与此交换,服务应用程序共享才能实现。

有关如何在场之间共享服务应用程序的详细信息,请参阅在 SharePoint Server 中跨服务器场共享服务应用程序

您必须使用 Microsoft PowerShell 命令以在服务器场之间导出和复制证书。 导出和复制证书后,您可以使用 PowerShell 命令或 管理中心 在服务器场内管理信任。

此处的说明假定满足以下条件:

  • 用于这些过程的服务器运行 PowerShell。
  • 在过程的所有步骤中,管理员在每个服务器场中都将选择和使用相同的服务器。
  • 如果启用了用户帐户控制 (UAC),则必须使用提升的特权运行 PowerShell 命令。

开始此操作之前,请查看在 SharePoint Server 中跨服务器场共享服务应用程序,了解有关先决条件的信息。

导出和复制证书

使用服务器场的管理员必须向发布服务器场提供两个信任证书:一个根证书和一个安全令牌服务 (STS) 证书。 发布服务器场的管理员必须向使用服务器场提供根证书。

只能使用 Windows PowerShell 3.0 或更高版本导出和复制证书。

从使用场导出根证书的具体步骤

  1. 在消费型服务器场上运行 SharePoint Server 的服务器上,确认你具有下列成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。
    • 要更新的所有数据库上的 db_owner 固定数据库角色。
    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。
    • 添加至少具有以上最小权限的成员。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 在 SharePoint 命令行管理程序中运行以下命令:

    $CFrootCert = (Get-SPCertificateAuthority).RootCertificate
    
    [System.IO.File]::WriteAllBytes('C:\ConsumingFarmRoot.cer', $CFrootCert.Export("Cert"))
    

    其中 C:\ConsumingFarmRoot.cer 是根证书的路径。

从使用服务器场导出 STS 证书

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。
    • 要更新的所有数据库上的 db_owner 固定数据库角色。
    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。
    • 添加至少具有以上最小权限的成员。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 在 SharePoint 命令行管理程序中运行以下命令:

    $stsCert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
    
    [System.IO.File]::WriteAllBytes('C:\ConsumingFarmSTS.cer', $stsCert.Export("Cert"))
    

    其中 C:\ConsumingFarmSTS.cer 是 STS 证书的路径。

从发布方服务器场中导出根证书

  1. 在发布服务器场上运行 SharePoint Server 的服务器上,确认你具有下列成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。
    • 要更新的所有数据库上的 db_owner 固定数据库角色。
    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。
    • 添加至少具有以上最小权限的成员。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 在 SharePoint 命令行管理程序中运行以下命令:

    $PFrootCert = (Get-SPCertificateAuthority).RootCertificate
    
    [System.IO.File]::WriteAllBytes('C:\PublishingFarmRoot.cer', $PFrootCert.Export("Cert"))
    

    其中 C:\PublishingFarmRoot.cer 是根证书的路径。

复制证书

  1. 将根证书和 STS 证书从使用服务器场中的服务器复制到发布服务器场中的服务器。
  2. 将根证书从发布服务器场中的服务器复制到使用服务器场中的服务器。

使用 PowerShell 管理信任证书

在服务器场内管理信任证书涉及到建立信任。 这一节描述如何使用 PowerShell 命令,在使用服务器场和发布服务器场上建立信任。

为使用服务器场建立信任

若要为使用服务器场建立信任,必须导入从发布服务器场复制的根证书并创建信任根证书颁发机构。

在使用服务器场导入根证书并创建信任根证书颁发机构

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。
    • 要更新的所有数据库上的 db_owner 固定数据库角色。
    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。
    • 添加至少具有以上最小权限的成员。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 在 SharePoint 命令行管理程序中运行以下命令:

    $trustCert = Get-PfxCertificate "<C:\PublishingFarmRoot.cer>"
    
    New-SPTrustedRootAuthority "<PublishingFarm>" -Certificate $trustCert
    

    其中:

    • <C:\PublishingFarmRoot.cer> 是您从发布服务器场复制到使用服务器场的根证书的路径。
    • <PublishingFarm> 是标识发布服务器场的唯一名称。 每个信任根证书颁发机构都必须有唯一的名称。

为发布服务器场建立信任

若要为发布服务器场建立信任,必须导入从使用服务器场复制的根证书并创建信任根证书颁发机构。 然后必须导入从使用服务器场复制的 STS 证书并创建信任服务令牌颁发机构。

在发布服务器场导入根证书并创建信任根证书颁发机构

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。
    • 要更新的所有数据库上的 db_owner 固定数据库角色。
    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。
    • 添加至少具有以上最小权限的成员。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 在 SharePoint 命令行管理程序中运行以下命令:

    $trustCert = Get-PfxCertificate "<C:\ConsumingFarmRoot.cer>"
    
    New-SPTrustedRootAuthority "<ConsumingFarm>" -Certificate $trustCert
    

    其中:

    • <C:\ConsumingFarmRoot.cer> 为从使用方服务器场复制到发布方服务器场的根证书的路径。
    • <ConsumingFarm> 是标识使用服务器场的唯一名称。 每个信任根证书颁发机构都必须有唯一的名称。

在发布服务器场导入 STS 证书并创建信任服务令牌颁发机构

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。
    • 要更新的所有数据库上的 db_owner 固定数据库角色。
    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。
    • 添加至少具有以上最小权限的成员。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 在 SharePoint 命令行管理程序中运行以下命令:

    $stsCert = Get-PfxCertificate "<c:\ConsumingFarmSTS.cer>"
    
    New-SPTrustedServiceTokenIssuer "<ConsumingFarm>" -Certificate $stsCert
    

    其中:

    • <C:\ConsumingFarmSTS.cer> 是从使用服务器场复制到发布服务器场的 STS 证书的路径。
    • <ConsumingFarm> 是标识使用服务器场的唯一名称。 每个信任服务令牌颁发机构都必须有唯一的名称。

有关这些 PowerShell cmdlet 的详细信息,请参阅以下文章:

有关如何使用脚本来自动执行此过程的某个部分的信息,请参阅 Exchange trust certificates between farms(在场之间交换信任证书)。

使用管理中心管理信任证书

只有将相关证书导出并复制到某个服务器场之后,才可以在该服务器场上管理信任。

使用管理中心建立信任

  1. 确认执行此过程的用户帐户是 SharePoint 组“服务器场管理员”的成员。

  2. 在 SharePoint 管理中心网站上,单击“安全性”

  3. 在“安全性”页的“一般安全性”部分,单击“管理信任”。

  4. 在“信任关系”页的功能区中,单击“新建”。

  5. 在“建立信任关系”页上,执行以下步骤:

    • 提供一个描述信任关系目的的名称。

    • 通过浏览找到并选择信任关系的根证书颁发机构。 它必须是通过使用 Microsoft PowerShell 从其他服务器场导出的根证书颁发机构(如导出和复制证书中所述)。

    • If you are performing this task on the publishing farm, select the check box for Provide Trust Relationship. 为令牌颁发机构键入一个说明性名称,通过浏览找到并选择从使用服务器场中复制的 STS 证书(如导出和复制证书中所述)。

    • 单击“确定”

    建立信任关系之后,可以通过单击该信任然后单击“编辑”,修改令牌颁发机构描述或所使用的证书。 可以通过单击某个信任然后单击“删除”,将其删除。

另请参阅

概念

在 SharePoint Server 中计划用户身份验证方法

其他资源

在 SharePoint Server 中创建 Web 应用程序

在 SharePoint Server 中使用 AD FS 配置基于 SAML 的声明身份验证