Dieser Abschnitt enthält eine Anleitung zum Aktivieren des FIPS-Modus unter RHEL 8, um eine sichere und konforme Umgebung für Edge for Private Cloud-Versionen 4.53.00 oder höher zu gewährleisten.
Vorabinstallation
Achten Sie darauf, dass FIPS auf Ihren Knoten aktiviert ist, zusammen mit den anderen Standardkonfigurationsvoraussetzungen, die in der Dokumentation Edge-Installation – Übersicht aufgeführt sind.
fips-mode-setup --check FIPS mode is enabled. # Command output
Wenn der FIPS-Modus derzeit deaktiviert ist, finden Sie in der offiziellen Red Hat-Dokumentation eine Anleitung zum Aktivieren: RHEL 8 in den FIPS-Modus wechseln.
Java-Anforderungen
Das verwendete Java sollte aus dem Repository von Red Hat heruntergeladen werden, damit die Sicherheitsmodule FIPS-konform sind und FIPS-spezifische Einschränkungen über die Java-Sicherheit ermöglicht werden.
Installation
Legen Sie in der Referenz zur Edge-Konfigurationsdatei FIPS_OS=true auf jedem Knoten fest. Sie können wie gewohnt die allgemeinen Installationsschritte für Edge for Private Cloud ausführen.
Format für privaten Schlüssel
Nur das PKCS12-/PFX-Format kann verwendet werden, um private Schlüssel in Apigee-Keystores hochzuladen, die in Ihren API-Proxys oder virtuellen Hosts verwendet werden sollen. Eine Anleitung zum Erstellen der Datei finden Sie unter Zertifikate in ein unterstütztes Format konvertieren.
Allgemeine TLS-Vorgänge
Wenn Sie Edge for Private Cloud 4.53.00 oder höher auf FIPS-fähigen RHEL 8.X oder Rocky 8.X verwenden, müssen die meisten TLS-bezogenen Komponentenkonfigurationen von Edge über PKCS12- oder BCFKS-Format-Keystores erfolgen.
Weitere Informationen zur TLS-Konfiguration finden Sie in der FIPS-spezifischen Dokumentation oder in den entsprechenden Artikeln. Im Anhang finden Sie einige hilfreiche Befehle, mit denen sich diese Schlüsselspeicher generieren lassen.
Standard-Java-Keystore/Truststore
Wenn Edge for Private Cloud 4.53.00 oder höher auf FIPS-fähigen RHEL 8.X oder Rocky 8.X verwendet wird, nutzen der Message Processor, der Management Server und andere edge-*-Komponenten einen standardmäßigen Truststore und Keystore, die mit dem Produkt bereitgestellt werden.
Sie enthalten CA-Zertifikate, denen Ihre Anwendung standardmäßig vertraut. Wenn Sie Ihren eigenen Speicher mit CA-Zertifikaten verwenden möchten, gehen Sie so vor:
-
Erstellen Sie eine
cacerts-Datei im BCFKS-Format, die alle Zertifizierungsstellenzertifikate enthält, denen Sie vertrauen möchten. Achten Sie darauf, dass das Passwort für den Schlüsselspeicher und das Passwort für den Schlüssel identisch sind. Weitere Informationen finden Sie im Anhang. -
Legen Sie die Datei in einem geeigneten Pfad ab und sorgen Sie dafür, dass sie vom Apigee-Nutzer gelesen werden kann:
cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
-
Erstellen oder bearbeiten Sie die entsprechende Konfigurationsdatei basierend auf der Komponente, mit der Sie arbeiten:
Komponente Datei 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 -
Fügen Sie der Datei die folgenden Zeilen hinzu:
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
-
Prüfen Sie, ob die Konfigurationsdatei dem Apigee-Nutzer gehört und von ihm gelesen werden kann:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
Starten Sie die Komponente neu:
/opt/apigee/apigee-service/bin/apigee-service <component> restart
Anhang
Beispielbefehle für BCFKS-Schlüsselspeicher
Mit dem folgenden Befehl wird ein BCFKS-Keystore mit einem selbst signierten Schlüssel- und Zertifikatpaar generiert:
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
Keytool-Befehle bleiben mit den üblicherweise verwendeten Befehlen konsistent, aber die folgenden Optionen müssen im Keytool-Befehl enthalten sein:
--storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
Keytool-Argumente
| Keytool-Argument | Beschreibung |
|---|---|
-storetype |
Legen Sie den Speichertyp auf BCFKS fest. |
-providerpath |
Geben Sie den Pfad zu bc-fips-XXXX.jar an. Diese Version kann sich in zukünftigen OPDK-Releases ändern. Verwenden Sie die von Apigee bereitgestellte Version oder laden Sie sie aus den Bouncycastle-Repositories herunter. Für OPDK 4.53 sollte der Pfad /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar lauten. |
-providerclass |
Legen Sie für dieses Feld org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider fest. |
-providername |
Legen Sie für dieses Feld BCFIPS fest. |
Ähnliche keytool-Befehle können verwendet werden, um Zertifikate und/oder Schlüssel aus einem Keystore im BCFKS-Format zu importieren oder zu exportieren. Weitere Informationen zum Arbeiten mit BCFKS finden Sie in der BouncyCastle-Dokumentation.
PKCS12-Speicher
Zum Generieren eines PKCS12-Speichers können openssl-Befehle verwendet werden:
# 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
Wenn Sie einen eigenen privaten Schlüssel und ein eigenes Zertifikat haben und diese in das PKCS12-Format konvertieren müssen, lesen Sie den Abschnitt Zertifikate in ein unterstütztes Format konvertieren.