Delen via


Set up an encryption certificate and encrypt secrets on Windows clusters

This article shows how to set up an encryption certificate and use it to encrypt secrets on Windows clusters. For Linux clusters, see Set up an encryption certificate and encrypt secrets on Linux clusters.

Azure Key Vault wordt hier gebruikt als een veilige opslaglocatie voor certificaten en als een manier om certificaten te installeren op Service Fabric-clusters in Azure. Als u niet implementeert in Azure, hoeft u Key Vault niet te gebruiken om geheimen in Service Fabric-toepassingen te beheren. Het gebruik van geheimen in een toepassing is echter platformneutraal in de cloud, zodat toepassingen overal kunnen worden geïmplementeerd in een cluster dat wordt gehost.

Een certificaat voor gegevenscodering verkrijgen

Een certificaat voor gegevenscodering wordt strikt gebruikt voor versleuteling en ontsleuteling van parameters in de Settings.xml- en omgevingsvariabelen van een service in de ServiceManifest.xml van een service. Het wordt niet gebruikt voor verificatie of ondertekening van coderingstekst. Het certificaat moet voldoen aan de volgende vereisten:

  • Het certificaat moet een persoonlijke sleutel bevatten.

  • Het certificaat moet worden gemaakt voor sleuteluitwisseling, exporteerbaar naar een PFX-bestand (Personal Information Exchange).

  • Het gebruik van de certificaatsleutel moet gegevenscodering (10) bevatten en mag geen serververificatie of clientverificatie bevatten.

    For example, when creating a self-signed certificate using PowerShell, the KeyUsage flag must be set to DataEncipherment:

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

Het certificaat installeren in uw cluster

This certificate must be installed on each node in the cluster. See how to create a cluster using Azure Resource Manager for setup instructions.

Encrypt application secrets

The following PowerShell command is used to encrypt a secret. This command only encrypts the value; it does not sign the cipher text. You must use the same encipherment certificate that is installed in your cluster to produce ciphertext for secret values:

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

The resulting base-64 encoded string contains both the secret ciphertext as well as information about the certificate that was used to encrypt it.

Volgende stappen

Meer informatie over het opgeven van versleutelde geheimen in een toepassing.