Configuración de un certificado de cifrado y cifrado de secretos en clústeres Linux
En este artículo se muestra cómo configurar un certificado de cifrado y usarlo para cifrar secretos en clústeres Linux. Para los clústeres Windows, consulte Configuración de un certificado de cifrado y cifrado de secretos en clústeres Windows.
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 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, se pueden usar los siguientes comandos para generar el certificado necesario con OpenSSL:
user@linux:~$ openssl req -newkey rsa:2048 -nodes -keyout TestCert.prv -x509 -days 365 -out TestCert.pem user@linux:~$ cat TestCert.prv >> TestCert.pem
Instalación del certificado en el clúster
Este certificado debe instalarse en cada nodo del clúster en /var/lib/sfcerts
. La cuenta de usuario en la que el servicio se está ejecutando (sfuser de forma predeterminada) debe tener acceso de lectura al certificado instalado (es decir, /var/lib/sfcerts/TestCert.pem
en este ejemplo).
Cifrado de secretos
El siguiente fragmento de código puede utilizarse para cifrar un secreto. Este fragmento de código 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.
user@linux:$ echo "Hello World!" > plaintext.txt
user@linux:$ iconv -f ASCII -t UTF-16LE plaintext.txt | tr -d '\n' > plaintext_UTF-16.txt
user@linux:$ openssl smime -encrypt -in plaintext_UTF-16.txt -binary -outform der TestCert.pem | base64 > encrypted.txt
La cadena codificada en base64 resultante (encrypted.txt) contiene tanto el texto cifrado del secreto, así como la información sobre el certificado que se usó para cifrarlo. Puede comprobar su validez descifrándolo con OpenSSL.
user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv
Pasos siguientes
Obtenga información sobre cómo especificar secretos cifrados en una aplicación.