Edge for Private Cloud w systemie RHEL 8.X lub Rocky 8.X z włączonym standardem FIPS

W tej sekcji znajdziesz wskazówki dotyczące włączania trybu FIPS w systemie RHEL 8, co zapewnia bezpieczne i zgodne z przepisami środowisko dla Edge for Private Cloud w wersji 4.53.00 lub nowszej.

Zainstaluj wcześniej

Upewnij się, że na węzłach jest włączony standard FIPS, a także spełnione są inne standardowe wymagania wstępne dotyczące konfiguracji wymienione w dokumentacji Omówienie instalacji Edge.

fips-mode-setup --check  
FIPS mode is enabled.  # Command output

Jeśli tryb FIPS jest obecnie wyłączony, instrukcje jego włączania znajdziesz w oficjalnej dokumentacji Red Hat: Switching RHEL 8 to FIPS mode (Przełączanie RHEL 8 na tryb FIPS).

Wymagania dotyczące Javy

Używana wersja Javy powinna zostać pobrana z repozytorium Red Hat, aby mieć pewność, że jej moduły zabezpieczeń są zgodne z FIPS, co umożliwia stosowanie ograniczeń związanych z FIPS za pomocą zabezpieczeń Javy.

Instalacja

pliku konfiguracji Edge ustaw wartość FIPS_OS=true w każdym węźle. Możesz postępować zgodnie z ogólnymi instrukcjami instalacji Edge for Private Cloud.

Format klucza prywatnego

Do przesyłania kluczy prywatnych do magazynów kluczy Apigee w celu używania ich w proxy interfejsu API lub hostach wirtualnych można używać tylko formatu PKCS12/PFX. Wskazówki dotyczące tworzenia pliku znajdziesz w artykule Konwertowanie certyfikatów na obsługiwany format.

Ogólne operacje TLS

Jeśli używasz Edge for Private Cloud w wersji 4.53.00 lub nowszej na platformie RHEL 8.X lub Rocky 8.X z włączonym standardem FIPS, większość konfiguracji komponentów Edge związanych z TLS będzie wymagać użycia magazynów kluczy w formacie PKCS12 lub BCFKS.

Więcej informacji o konfiguracji TLS znajdziesz w dokumentacji dotyczącej FIPS lub w uwagach w odpowiednich artykułach. W dodatku znajdziesz listę przydatnych poleceń, których możesz użyć do wygenerowania tych magazynów kluczy.

Domyślny magazyn kluczy/magazyn zaufanych certyfikatów Java

Gdy Edge dla chmury prywatnej w wersji 4.53.00 lub nowszej jest używany w systemie RHEL 8.X lub Rocky 8.X z włączonym standardem FIPS, procesor wiadomości, serwer zarządzania i inne komponenty edge-* korzystają z domyślnego magazynu zaufanych certyfikatów i magazynu kluczy dostarczonych z produktem.

Zawierają one certyfikaty urzędu certyfikacji, którym Twoja aplikacja domyślnie ufa. Jeśli chcesz użyć własnego magazynu zawierającego certyfikaty urzędu certyfikacji, wykonaj te czynności:

  1. Utwórz plik w formacie BCFKS cacerts zawierający wszystkie certyfikaty CA, którym chcesz zaufać. Upewnij się, że hasło do magazynu kluczy i hasło do klucza są takie same. Więcej informacji znajdziesz w dodatku.
  2. Umieść plik w odpowiedniej ścieżce i upewnij się, że użytkownik apigee może go odczytać:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Utwórz (lub zmodyfikuj) odpowiedni plik konfiguracji na podstawie komponentu, z którym pracujesz:
    Komponent Plik
    edge-management-server $/opt/apigee/customer/application/management-server.properties
    edge-message-processor $/opt/apigee/customer/application/message-processor.properties
    edge-router $/opt/apigee/customer/application/router.properties
    edge-postgres-server $/opt/apigee/customer/application/postgres-server.properties
    edge-qpid-server $/opt/apigee/customer/application/qpid-server.properties
  4. Dodaj do tego pliku te wiersze:
    conf_system_javax.net.ssl.trustStore=<PATH to bcfks cacerts>
    conf_system_javax.net.ssl.trustStorePassword=changeme
    conf_system_javax.net.ssl.keyStore=<PATH to bcfks cacerts>
    conf_system_javax.net.ssl.keyStoreType=BCFKS
    conf_system_javax.net.ssl.keyStorePassword=changeme
  5. Sprawdź, czy plik konfiguracyjny jest własnością użytkownika apigee i czy może on go odczytać:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Uruchom ponownie komponent:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Dodatek

Przykładowe polecenia operacji na magazynie kluczy BCFKS

To polecenie generuje magazyn kluczy BCFKS z podpisaną samodzielnie parą kluczy i certyfikatów:

keytool -genkeypair -keyalg RSA -alias node0 -validity 365 -keystore keystore.node0 \
-storepass keypass -keypass keypass -v \
-dname "EMAILADDRESS=youremail@domain.com, CN=yourcn, OU=yourou, O=youro, L=yourl, C=yourc" \
-storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS

Polecenia narzędzia keytool pozostają takie same jak zwykle, ale w poleceniu keytool muszą być uwzględnione te opcje:

--storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider 
-providername BCFIPS

Argumenty narzędzia Keytool

Argument narzędzia Keytool Opis
-storetype Ustaw typ sklepu na BCFKS.
-providerpath Określ ścieżkę do bc-fips-XXXX.jar. Ta wersja może się zmienić w kolejnych wersjach OPDK. Użyj wersji dostarczonej przez Apigee lub pobierz ją z repozytoriów Bouncycastle. W przypadku OPDK 4.53 ścieżka powinna mieć postać /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Ustaw tę wartość na org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Ustaw tę wartość na BCFIPS.

Podobne polecenia keytool można używać do importowania lub eksportowania certyfikatów lub kluczy z magazynu kluczy w formacie BCFKS. Więcej informacji o pracy z BCFKS znajdziesz w dokumentacji BouncyCastle.

Magazyn PKCS12

Aby wygenerować magazyn PKCS12, możesz użyć poleceń openssl:

# Generate a self-signed private key and certificate
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.pem -sha256 -days 36500 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=cn/emailAddress=email"
# Package the above generated key and cert into a PKCS12
openssl pkcs12 -export -clcerts -in certificate.pem -inkey private.key -out keystore.pfx -name myalias

Jeśli masz własny klucz prywatny i certyfikat i musisz przekonwertować je na format PKCS12, zapoznaj się z artykułem Konwertowanie certyfikatów na obsługiwany format.