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.