Een versleutelingscertificaat instellen en geheimen versleutelen in Linux-clusters
In dit artikel leest u hoe u een versleutelingscertificaat instelt en gebruikt om geheimen in Linux-clusters te versleutelen. Zie Een versleutelingscertificaat instellen en geheimen versleutelen op Windows-clusters voor Windows-clusters.
Een certificaat voor gegevenscodering verkrijgen
Een certificaat voor gegevenscodering wordt uitsluitend gebruikt voor het versleutelen en ontsleutelen 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 aan de volgende vereisten voldoen:
Het certificaat moet een persoonlijke sleutel bevatten.
Het gebruik van de certificaatsleutel moet Gegevenscodering (10) bevatten en mag geen serververificatie of clientverificatie bevatten.
De volgende opdrachten kunnen bijvoorbeeld worden gebruikt om het vereiste certificaat te genereren met behulp van 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
Het certificaat installeren in uw cluster
Het certificaat moet worden geïnstalleerd op elk knooppunt in het cluster onder /var/lib/sfcerts
. Het gebruikersaccount waaronder de service wordt uitgevoerd (standaard sfuser) moet leestoegang hebben tot het geïnstalleerde certificaat (dat wil gezegd, /var/lib/sfcerts/TestCert.pem
voor het huidige voorbeeld).
Geheimen versleutelen
Het volgende codefragment kan worden gebruikt om een geheim te versleutelen. Dit codefragment versleutelt alleen de waarde; de coderingstekst wordt niet ondertekend. U moet hetzelfde coderingscertificaat gebruiken dat in uw cluster is geïnstalleerd om coderingstekst voor geheime waarden te produceren.
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
De resulterende base-64 gecodeerde tekenreeksuitvoer naar encrypted.txt bevat zowel de geheime coderingstekst als informatie over het certificaat dat is gebruikt om het te versleutelen. U kunt de geldigheid controleren door het te ontsleutelen met OpenSSL.
user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv
Volgende stappen
Meer informatie over het opgeven van versleutelde geheimen in een toepassing.