W tej sekcji znajdziesz wskazówki dotyczące włączania trybu FIPS w RHEL 8, aby zapewnić bezpieczne i zgodne z przepisami środowisko dla Edge for Private Cloud w wersji 4.53.00 lub nowszej.
Wstępna instalacja
Upewnij się, że FIPS jest włączony na węzłach, a także że spełnione są inne standardowe wymagania wstępne konfiguracji wymienione w dokumentacji Omówienie instalacji urządzenia Edge.
fips-mode-setup --check FIPS mode is enabled. # Command output
Jeśli tryb FIPS jest obecnie wyłączony, zapoznaj się z oficjalną dokumentacją Red Hat, aby dowiedzieć się, jak go włączyć: Przełączanie RHEL 8 w tryb FIPS.
Wymagania dotyczące Javy
Java, której używasz, powinna zostać pobrana z repozytorium Red Hat, aby mieć pewność, że jej moduły bezpieczeństwa są zgodne z FIPS, co umożliwia stosowanie ograniczeń FIPS za pomocą zabezpieczeń Java.
Instalacja
W pliku referencyjnym konfiguracji Edge ustaw FIPS_OS=true
na każdym węźle. Możesz wykonać ogólne czynności instalacji Edge dla Private Cloud w standardowy sposób.
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. Więcej informacji o tworzeniu 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 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ć wykonywana za pomocą repozytorium kluczy w formacie PKCS12 lub BCFKS.
Aby dowiedzieć się więcej o konfiguracji TLS, zapoznaj się z dokumentacją FIPS lub notatkami w odpowiednich artykułach. 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, przetwarzacz wiadomości, serwer zarządzania i inne komponenty edge-* korzystają z domyślnego repozytorium zaufania i repozytorium kluczy dostarczonych wraz z produktem.
Zawierają one certyfikaty urzędu certyfikacji, które są domyślnie zaufane w aplikacji. Jeśli chcesz używać własnego magazynu zawierającego certyfikaty urzędu certyfikacji, wykonaj te czynności:
-
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 klucza są takie same. Więcej informacji znajdziesz w załączniku. -
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
-
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 -
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
-
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
-
Ponownie uruchom komponent:
/opt/apigee/apigee-service/bin/apigee-service <component> 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 są zgodne z zazwyczaj używanymi poleceniami, ale w poleceniu keytool należy uwzględnić 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 |
Ustaw typ sklepu na BCFKS . |
-providerpath |
Podaj ścieżkę do bc-fips-XXXX.jar . Ta wersja może ulec zmianie 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 ją na org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider . |
-providername |
Ustaw ją 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, które chcesz przekonwertować na format PKCS12, zapoznaj się z artykułem Konwertowanie certyfikatów na obsługiwany format.