Reimpostare la chiave di generazione del certificato per SharePoint Workflow Manager

La chiave di generazione del certificato di SharePoint Workflow Manager (SPWFM) è simile alla passphrase della farm di SharePoint in quanto è necessaria per l'aggiunta a una farm SPWFM. Quando si aggiunge una farm SPWFM esistente, ad esempio durante un aggiornamento o una migrazione, la configurazione guidata del flusso di lavoro ne richiede l'uso.

Se questa chiave non è stata documentata durante la prima configurazione della farm del flusso di lavoro e non si sa che cos'è, è necessario reimpostarla prima di uscire dalla farm del flusso di lavoro.

Importante

La reimpostazione della chiave di generazione del certificato comporterà anche la generazione di nuovi certificati del flusso di lavoro e del bus di servizio. Sarà necessario eseguire passaggi aggiuntivi per assicurarsi che i server SharePoint consideri attendibili questi nuovi certificati. In caso contrario, tutti i flussi di lavoro della piattaforma 2013 avranno esito negativo.

Reimpostare la chiave

È possibile usare lo script di PowerShell seguente per reimpostare la chiave, ma è necessario eseguirla in un server SPWFM ancora aggiunto alla farm del flusso di lavoro. Se nella farm del flusso di lavoro sono presenti più nodi/host, è consigliabile semplificare il processo facendo in modo che gli altri nodi lascino la farm, con un solo nodo rimanente.

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

Considerare attendibili i nuovi certificati sul lato SharePoint

Come accennato in precedenza, la reimpostazione della chiave di generazione del certificato comporta la generazione di nuovi certificati. Si tratta di certificati autofirmati che i server SharePoint non considerano attendibili. È necessario seguire questa procedura per assicurarsi che i server SharePoint consideri attendibili i nuovi certificati.

  1. Considerare attendibile il nuovo certificato dell'endpoint del flusso di lavoro in tutti i server SharePoint. Si è notato che lo script di PowerShell precedente ha esportato questo certificato nella directory corrente come "WFsslCert.cer". Questo è quello che i server SharePoint devono considerare attendibili. Copiarlo in ogni server SharePoint e installarlo nell'archivio Autorità di certificazione radice attendibili. Per i passaggi dettagliati, vedere Installare Workflow Manager certificati in SharePoint.

  2. Aggiornare SPTrustedSecurityTokenIssuer eseguendo il processo timer RefreshMetadataFeed in qualsiasi server SharePoint. È possibile eseguire questa operazione con questo PowerShell:

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