Edge dla Private Cloud w RHEL 8.X z obsługą FIPS

Ten artykuł zawiera szczegółowe informacje i instrukcje przeznaczone dla klientów korzystających z Edge for Private Cloud w wersji 4.53.00 lub nowszej, działającej w systemie RHEL 8.X z włączonym FIPS.

Wstępna instalacja

Oprócz innych standardowych wymagań wstępnych konfiguracji wymienionych w dokumentacji Edge dla prywatnej chmury sprawdź, czy na węzłach jest włączona funkcja FIPS.

fips-mode-setup --check
FIPS mode is enabled.

Jeśli tryb FIPS jest obecnie wyłączony, zapoznaj się z oficjalną dokumentacją Red Hat, aby dowiedzieć się, jak go włączyć:

Wymagania dotyczące Javy

Java, której używasz, powinna zostać pobrana z repozytorium Red Hat, aby mieć pewność, że moduły zabezpieczeń Java są zgodne z FIPS i mogą stosować ograniczenia FIPS za pomocą zabezpieczeń Java.

Instalacja

W pliku konfiguracji cichej instalacji ustaw wartość FIPS_OS=true w każdym węźle. Możesz postępować zgodnie ze standardowymi instrukcjami instalacji Edge dla Private Cloud.

Format klucza prywatnego

Do przesyłania kluczy prywatnych do kluczy zapasowych Apigee na potrzeby korzystania z nich w zaporach API lub hostach wirtualnych można używać tylko formatu PKCS12/PFX. Aby dowiedzieć się, jak utworzyć plik, zapoznaj się z artykułem 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 systemie RHEL 8.X z włączoną funkcją FIPS, większość konfiguracji komponentów Edge związanych z protokołem TLS będzie musiała być wykonana za pomocą formatu klucza PKCS12 lub BCFKS. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją FIPS lub notatkami w odpowiednich artykułach na temat konfiguracji TLS. W załączniku znajdziesz przydatne polecenia, które można wykorzystać do wygenerowania tych magazynów kluczy.

Domyślny kluczarz/zaufany kluczarz Java

Gdy Edge for Private Cloud w wersji 4.53.00 lub nowszej jest używany na systemie RHEL 8.X z włączoną funkcją FIPS, procesor wiadomości, serwer zarządzania i inne komponenty edge-* korzystają z domyślnego repozytorium zaufania i repozytorium kluczy dołączonych do produktu. Zawierają one certyfikaty urzędu certyfikacji, którym aplikacja będzie ufać domyślnie. Jeśli chcesz zmienić to ustawienie na własny sklep zawierający certyfikaty urzędu certyfikacji, wykonaj te czynności:

  1. Utwórz plik cacerts w formacie BCFKS, który zawiera wszystkie certyfikaty urzędu certyfikacji, 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 załączniku.
  2. Umieść plik w odpowiedniej ścieżce i upewnij się, że jest on czytelny dla użytkownika apige:
    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. Upewnij się, że plik konfiguracji jest własnością użytkownika apigee i jest przez niego czytelny:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Ponownie uruchom komponent:
    /opt/apigee/apigee-service/bin/apigee-service  restart

Dodatek

Przykładowe polecenia operacji na kluczu BCFKS

Poniższe polecenie generuje kluczarnię BCFKS z parą kluczy i certyfikatu podpisanego samodzielnie:

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 keytool pozostają takie same jak te uruchamiane ogólnie, ale do polecenia keytool należy dodać 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 Keytool

Argument Keytool Opis
-storetype Typ magazynu to BCFKS.
-providerpath Ścieżka do pliku bc-fips-XXXX.jar. Wersja pliku jar może się zmienić w przyszłych wersjach OPDK. Należy używać wersji dostarczonej przez Apigee. Możesz też pobrać plik jar z repozytoriów Bouncycastle. W wersji OPDK 4.53 powinno to być /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Powinien być ustawiony na org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Powinien być ustawiony na BCFIPS.

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

PKCS12 Store

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 oraz chcesz je spakować do pliku PKCS12, zapoznaj się z artykułem Konwertowanie certyfikatów na obsługiwany format.