重置 SharePoint 工作流管理器的证书生成密钥

SharePoint 工作流管理器 (SPWFM) 证书生成密钥类似于 SharePoint 场通行短语,因为它需要它才能加入 SPWFM 场。 加入现有 SPWFM 场时(例如,在升级或迁移期间),工作流配置向导会提示你输入它。

如果在首次配置工作流场时未记录此密钥,并且不知道它是什么,则应在离开工作流场之前重置它。

重要

重置证书生成密钥还会导致生成新的工作流和服务总线证书。 你需要采取额外的步骤来确保 SharePoint 服务器信任这些新证书。 否则将导致所有 2013 平台工作流失败。

重置密钥

可以使用以下 PowerShell 脚本重置密钥,但必须在仍已加入工作流场的 SPWFM 服务器上运行密钥。 如果工作流场中有多个节点/主机,建议通过让其他节点离开场来简化此过程,只剩下一个节点。

# Just provide the new certificate key here, for example P@ssWord1
# MAKE SURE YOU DOCUMENT THIS KEY SOMEWHERE SO YOU DON'T HAVE TO REPEAT THIS EXERCISE
$CertKey = convertto-securestring "[YourPassword]" -asplaintext -force

### You should NOT have to change anything below this line ###
# Set the key for WF
$WFdb = (get-wffarm).wffarmdbconnectionstring
Set-WFCertificateAutoGenerationKey  -WFFarmDBConnectionString $WFdb -key $CertKey -Verbose

# Force the Update on the WF side
Stop-WFHost
Update-WFHost -CertificateAutoGenerationKey $CertKey
"Starting Workflow Farm.  This could take a few minutes..."
Start-WFHost

# Set the key for SB
$SBdb = (get-sbfarm).SBFarmDBConnectionString 
Set-SBCertificateAutogenerationKey -SBFarmDBConnectionString $SBdb -key $CertKey  -Verbose

# Force the Update on the SB side
Stop-Sbfarm
Update-SBHost -CertificateAutoGenerationKey $CertKey
Write-host "Starting Service Bus Farm.  This could take a few minutes..."
Start-SBfarm

# Some steps you need to take on the SharePoint side
Write-host -ForegroundColor yellow "Exporting the new WF endpoint cert to the current directory.  You MUST install this cert on all SharePoint servers."
Write-host "$PWD\WFsslCert.cer"
Get-WFAutoGeneratedCA -CACertificateFileName WFsslCert.cer
Write-host -ForegroundColor yellow "AFTER you have installed $PWD\WFsslCert.cer on your SharePoint servers, you must also run the ""Refresh Trusted Security Token Services Metadata feed"" timer job on the SharePoint side to update the Workflow Outbound certificate."

信任 SharePoint 端的新证书

如上所述,重置证书生成密钥会导致生成新证书。 这些是 SharePoint 服务器不信任的自签名证书。 必须执行以下步骤,以确保 SharePoint 服务器信任新证书。

  1. 信任所有 SharePoint 服务器上的新工作流终结点证书。 你可能已注意到,上述 PowerShell 脚本将此证书导出到当前目录作为“WFsslCert.cer”。 这是 SharePoint 服务器需要信任的。 将其复制到每个 SharePoint 服务器,并将其安装到受信任的根证书颁发机构存储区。 有关详细步骤,请参阅在 SharePoint 中安装工作流管理器证书

  2. 通过在任何 SharePoint 服务器上运行 RefreshMetadataFeed 计时器作业来刷新 SPTrustedSecurityTokenIssuer。 可以使用以下 PowerShell 执行此操作:

    $tj = Get-SPTimerJob | ? {$_.name -match "RefreshMetadataFeed"} 
    Start-SPTimerJob $tj