Réinitialiser la clé de génération de certificat pour SharePoint Gestionnaire de flux de travail
La clé de génération de certificat SharePoint Gestionnaire de flux de travail (SPWFM) est similaire à la phrase secrète de la batterie de serveurs SharePoint, car vous en avez besoin pour joindre une batterie de serveurs SPWFM. Lors de la jonction d’une batterie de serveurs SPWFM existante, par exemple lors d’une mise à niveau ou d’une migration, l’Assistant Configuration du workflow vous invite à le faire.
Si vous n’avez pas documenté cette clé lors de la première configuration de la batterie de flux de travail et que vous ne savez pas ce qu’elle est, vous devez la réinitialiser avant de quitter la batterie de flux de travail.
Importante
La réinitialisation de la clé de génération de certificat entraîne également la génération de nouveaux certificats De flux de travail et Service Bus. Vous devez prendre des mesures supplémentaires pour vous assurer que les serveurs SharePoint approuvent ces nouveaux certificats. Si vous ne le faites pas, tous les workflows de plateforme 2013 échouent.
Réinitialiser la clé
Vous pouvez utiliser le script PowerShell suivant pour réinitialiser la clé, mais vous devez l’exécuter sur un serveur SPWFM toujours joint à la batterie de flux de travail. Si vous avez plusieurs nœuds/hôtes dans la batterie de flux de travail, il est recommandé de simplifier le processus en faisant en sorte que les autres nœuds quittent la batterie de serveurs, avec un seul restant.
# 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."
Approuver les nouveaux certificats côté SharePoint
Comme mentionné ci-dessus, la réinitialisation de la clé de génération de certificat entraîne la génération de nouveaux certificats. Il s’agit de certificats auto-signés que vos serveurs SharePoint n’approuveront pas. Vous devez effectuer les étapes suivantes pour vous assurer que vos serveurs SharePoint approuvent les nouveaux certificats.
Approuvez le nouveau certificat de point de terminaison de flux de travail sur tous les serveurs SharePoint. Vous avez peut-être remarqué que le script PowerShell ci-dessus a exporté ce certificat vers le répertoire actif en tant que « WFsslCert.cer ». C’est celle que vos serveurs SharePoint doivent approuver. Copiez-le sur chaque serveur SharePoint et installez-le dans le magasin Autorités de certification racines de confiance. Pour plus d’informations, voir Installer des certificats Gestionnaire de flux de travail dans SharePoint.
Actualisez spTrustedSecurityTokenIssuer en exécutant le travail du minuteur RefreshMetadataFeed sur n’importe quel serveur SharePoint. Vous pouvez le faire avec ce PowerShell :
$tj = Get-SPTimerJob | ? {$_.name -match "RefreshMetadataFeed"} Start-SPTimerJob $tj