Configuración de un certificado de cifrado y cifrado de secretos en clústeres Windows
En este artículo se muestra cómo configurar un certificado de cifrado y usarlo para cifrar secretos en clústeres Windows. En el caso de los clústeres Linux, consulte Configuración de un certificado de cifrado y cifrado de secretos en clústeres Linux.
Azure Key Vault se usa aquí como ubicación de almacenamiento seguro para los certificados y como forma de obtener los certificados instalados en clústeres de Service Fabric en Azure. Si no va a implementar en Azure, no es necesario usar Key Vault para administrar secretos en aplicaciones de Service Fabric. Sin embargo, el uso de secretos en una aplicación es independiente de la plataforma de nube para permitir que las aplicaciones se implementen en un clúster hospedado en cualquier parte.
Obtención de un certificado de cifrado de datos
Un certificado de cifrado de datos se utiliza estrictamente para cifrar y descifrar los parámetros de un archivo Settings.xml del servicio y las variables de entorno de un archivo ServiceManifest.xml del servicio. No se usa para la autenticación o la firma de texto cifrado. El certificado debe cumplir los siguientes requisitos:
El certificado debe contener una clave privada.
El certificado debe crearse para el intercambio de claves, que se puedan exportar a un archivo Personal Information Exchange (.pfx).
El uso de claves de certificado debe incluir el cifrado de datos (10), y no debe incluir la autenticación de servidor o la autenticación de cliente.
Por ejemplo, al crear un certificado autofirmado mediante PowerShell, la marca
KeyUsage
debe establecerse enDataEncipherment
:New-SelfSignedCertificate -Type DocumentEncryptionCert -KeyUsage DataEncipherment -Subject mydataenciphermentcert -Provider 'Microsoft Enhanced Cryptographic Provider v1.0'
Instalación del certificado en el clúster
Este certificado debe instalarse en cada nodo del clúster. Consulte cómo crear un clúster mediante Azure Resource Manager para ver las instrucciones de configuración.
Cifrado de los secretos de aplicación
El siguiente comando de PowerShell se usa para cifrar un secreto. Este comando solo cifra el valor; no firma el texto cifrado. Para producir texto cifrado para los valores de secreto, debe usar el mismo certificado de cifrado que está instalado en el clúster:
Invoke-ServiceFabricEncryptText -CertStore -CertThumbprint "<thumbprint>" -Text "mysecret" -StoreLocation CurrentUser -StoreName My
La cadena codificada en base64 resultante contiene tanto el texto cifrado del secreto, así como la información sobre el certificado que se usó para cifrarlo.
Pasos siguientes
Obtenga información sobre cómo especificar secretos cifrados en una aplicación.