Zertifikatgenerierungsschlüssel für SharePoint-Workflow-Manager zurücksetzen

Der SharePoint Workflow-Manager (SPWFM)-Zertifikatgenerierungsschlüssel ähnelt der Passphrase der SharePoint-Farm, da Sie sie für den Beitritt zu einer SPWFM-Farm benötigen. Wenn Sie einer vorhandenen SPWFM-Farm beitreten, z. B. während eines Upgrades oder einer Migration, werden Sie vom Workflowkonfigurations-Assistenten dazu aufgefordert.

Wenn Sie diesen Schlüssel beim ersten Konfigurieren der Workflowfarm nicht dokumentiert haben und nicht wissen, um was es sich handelt, sollten Sie ihn zurücksetzen, bevor Sie die Workflowfarm verlassen.

Wichtig

Das Zurücksetzen des Zertifikatgenerierungsschlüssels führt auch dazu, dass neue Workflow- und Service Bus-Zertifikate generiert werden. Sie müssen zusätzliche Schritte ausführen, um sicherzustellen, dass die SharePoint-Server diesen neuen Zertifikaten vertrauen. Andernfalls können alle 2013-Plattformworkflows fehlschlagen.

Zurücksetzen des Schlüssels

Sie können das folgende PowerShell-Skript verwenden, um den Schlüssel zurückzusetzen, aber Sie müssen ihn auf einem SPWFM-Server ausführen, der noch mit der Workflowfarm verbunden ist. Wenn sie über mehrere Knoten/Hosts in der Workflowfarm verfügen, wird empfohlen, den Prozess zu vereinfachen, indem Sie die anderen Knoten aus der Farm verlassen, wobei nur noch ein Knoten übrig bleibt.

# 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."

Vertrauen sie den neuen Zertifikaten auf SharePoint-Seite

Wie bereits erwähnt führt das Zurücksetzen des Zertifikatgenerierungsschlüssels dazu, dass neue Zertifikate generiert werden. Dabei handelt es sich um selbstsignierte Zertifikate, denen Ihre SharePoint-Server nicht vertrauen. Sie müssen die folgenden Schritte ausführen, um sicherzustellen, dass Ihre SharePoint-Server den neuen Zertifikaten vertrauen.

  1. Vertrauen Sie dem neuen Workflowendpunktzertifikat auf allen SharePoint-Servern. Möglicherweise haben Sie bemerkt, dass das obige PowerShell-Skript dieses Zertifikat als "WFsslCert.cer" in das aktuelle Verzeichnis exportiert hat. Dies ist das, dem Ihre SharePoint-Server vertrauen müssen. Kopieren Sie sie auf jeden SharePoint-Server, und installieren Sie sie im Speicher für vertrauenswürdige Stammzertifizierungsstellen. Ausführliche Schritte finden Sie unter Installieren von Workflow-Manager Zertifikaten in SharePoint.

  2. Aktualisieren Sie spTrustedSecurityTokenIssuer, indem Sie den Zeitgeberauftrag RefreshMetadataFeed auf einem beliebigen SharePoint-Server ausführen. Dies ist mit der folgenden PowerShell möglich:

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