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.