Configurer un certificat de chiffrement et chiffrer des secrets sur clusters Linux
Dans cet article, découvrez comment configurer un certificat de chiffrement et l’utiliser pour chiffrer des secrets sur clusters Linux. Pour les clusters Windows, voir Configurer un certificat de chiffrement et chiffrer des secrets sur Windows.
Obtenir un certificat de chiffrement de données
Un certificat de chiffrement de données est utilisé exclusivement pour le chiffrement et le déchiffrement des paramètres du fichier Settings.xml d’un service et des variables d’environnement du fichier ServiceManifest.xml d’un service. Il n’est pas utilisé pour l’authentification ou la signature du texte chiffré. Le certificat doit répondre aux exigences suivantes :
Le certificat doit contenir une clé privée.
L’utilisation d’une clé de certificat doit inclure le chiffrement de données (10) et ne doit pas inclure l’authentification du serveur ou l’authentification du client.
Par exemple, les commandes suivantes peuvent être utilisées pour générer le certificat nécessaire à l’aide d’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
Installation du certificat dans votre cluster
Le certificat doit être installé sur chaque nœud du cluster sous /var/lib/sfcerts
. Le compte d’utilisateur sous lequel le service s’exécute (sfuser par défaut) doit avoir un accès en lecture pour le certificat installé (c’est-à-dire, /var/lib/sfcerts/TestCert.pem
pour l’exemple actuel).
Chiffrer des secrets
L’extrait de code suivant permet de chiffrer un secret. Cet extrait de code chiffre uniquement la valeur ; elle ne signe pas le texte chiffré. Vous devez utiliser le certificat de chiffrement qui est installé dans votre cluster afin de produire le texte chiffré pour les valeurs secrètes.
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 chaîne encodée en base 64 qui en résulte dans le fichier encrypted.txt contient à la fois le texte chiffré secret et plus d’informations sur le certificat qui a été utilisé pour le chiffrement. Vous pouvez vérifier sa validité en la déchiffrant avec OpenSSL.
user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv
Étapes suivantes
Découvrez comment Spécifier des secrets chiffrés dans une application.