Udostępnij za pośrednictwem


Konfigurowanie certyfikatu szyfrowania i szyfrowanie wpisów tajnych w klastrach systemu Linux

W tym artykule pokazano, jak skonfigurować certyfikat szyfrowania i używać go do szyfrowania wpisów tajnych w klastrach systemu Linux. W przypadku klastrów systemu Windows zobacz Konfigurowanie certyfikatu szyfrowania i szyfrowanie wpisów tajnych w klastrach systemu Windows.

Uzyskiwanie certyfikatu szyfrowania danych

Certyfikat szyfrowania danych jest używany ściśle do szyfrowania i odszyfrowywania parametrów w Settings.xml usługi i zmiennych środowiskowych w ServiceManifest.xml usługi. Nie jest używany do uwierzytelniania ani podpisywania tekstu szyfrującego. Certyfikat musi spełniać następujące wymagania:

  • Certyfikat musi zawierać klucz prywatny.

  • Użycie klucza certyfikatu musi obejmować szyfrowanie danych (10) i nie powinno obejmować uwierzytelniania serwera ani uwierzytelniania klienta.

    Na przykład następujące polecenia mogą służyć do generowania wymaganego certyfikatu przy użyciu biblioteki 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
    

Instalowanie certyfikatu w klastrze

Certyfikat musi być zainstalowany w każdym węźle w klastrze w obszarze /var/lib/sfcerts. Konto użytkownika, w ramach którego działa usługa (domyślnie sfuser) powinno mieć dostęp do odczytu do zainstalowanego certyfikatu (czyli /var/lib/sfcerts/TestCert.pem w bieżącym przykładzie).

Szyfrowanie wpisów tajnych

Poniższy fragment kodu może służyć do szyfrowania wpisu tajnego. Ten fragment kodu szyfruje tylko wartość; nie podpisuje tekstu szyfru. Należy użyć tego samego certyfikatu szyfrowania, który jest zainstalowany w klastrze, aby utworzyć szyfr dla wartości wpisów tajnych.

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

Wynikowe dane wyjściowe ciągów zakodowanych w formacie base-64 do encrypted.txt zawierają zarówno tajny tekst szyfrowania, jak i informacje o certyfikacie, który został użyty do jego zaszyfrowania. Poprawność można zweryfikować, odszyfrując ją za pomocą protokołu OpenSSL.

user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv

Następne kroki

Dowiedz się, jak określić zaszyfrowane wpisy tajne w aplikacji.