Configurare un certificato di crittografia e crittografare segreti in cluster Windows

Questo articolo illustra come configurare un certificato di crittografia e usarlo per crittografare segreti in cluster Windows. Per i cluster Linux, vedere Configurare un certificato di crittografia e crittografare segreti in cluster Linux.

Azure Key Vault viene usato come percorso di archiviazione sicuro per i certificati e come un modo per ottenere i certificati installati nei cluster Service Fabric in Azure. Se non si esegue la distribuzione in Azure, non è necessario usare l'insieme di credenziali delle chiavi per gestire i segreti nelle applicazioni di Service Fabric. Tuttavia, l'uso dei segreti in un'applicazione è agnostico della piattaforma cloud per consentire la distribuzione delle applicazioni in un cluster ospitato ovunque.

Ottenere un certificato di crittografia dei dati

Il certificato di crittografia dei dati viene usato esclusivamente per la crittografia e decrittografia dei parametri del file Settings.xml di un servizio e delle variabili di ambiente del file ServiceManifest.xml di un servizio. Non viene usato per l'autenticazione o per la firma di testo crittografato. Il certificato deve soddisfare i requisiti seguenti:

  • Il certificato deve includere una chiave privata.

  • Il certificato deve essere stato creato per lo scambio di chiave, esportabile in un file con estensione pfx (Personal Information Exchange).

  • L'uso delle chiavi del certificato deve includere la crittografia dei dati (10) e non deve includere l'autenticazione del server o del client.

    Ad esempio, quando si crea un certificato autofirmato tramite PowerShell, il flag KeyUsage deve essere impostato su DataEncipherment:

    New-SelfSignedCertificate -Type DocumentEncryptionCert -KeyUsage DataEncipherment -Subject mydataenciphermentcert -Provider 'Microsoft Enhanced Cryptographic Provider v1.0'
    

Installare il certificato nel cluster

Questo certificato deve essere installato su ogni nodo del cluster. Per le istruzioni di installazione, vedere l'articolo che spiega come creare un cluster con Azure Resource Manager.

Eseguire la crittografia dei segreti dell'applicazione

Il comando PowerShell seguente viene usato per crittografare un segreto. Questo comando consente unicamente di crittografare il valore e non firma il testo crittografato. È necessario usare lo stesso certificato di crittografia installato nel cluster per produrre il testo crittografato per i valori del segreto:

Invoke-ServiceFabricEncryptText -CertStore -CertThumbprint "<thumbprint>" -Text "mysecret" -StoreLocation CurrentUser -StoreName My

La stringa con codifica Base 64 risultante contiene sia il testo crittografato del segreto sia le informazioni relative al certificato usato per crittografarlo.

Passaggi successivi

Vedere le informazioni su come specificare i segreti crittografati in un'applicazione