Edge for Private Cloud auf FIPS-fähiger RHEL 8.X

In diesem Abschnitt erfahren Sie, wie Sie den FIPS-Modus unter RHEL 8 aktivieren, um eine sichere und konforme Umgebung für Edge for Private Cloud-Versionen 4.53.00 oder höher zu schaffen.

Vorinstallieren

Achten Sie darauf, dass FIPS auf Ihren Knoten zusammen mit den anderen Standardkonfigurationsvoraussetzungen aktiviert ist, 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 umstellen.

Java-Anforderungen

Die von Ihnen verwendete Java-Version sollte aus dem Red Hat-Repository heruntergeladen werden, damit die Sicherheitsmodule FIPS-konform sind und FIPS-spezifische Einschränkungen über die Java-Sicherheit aktiviert werden können.

Installation

Legen Sie in der Edge-Konfigurationsdatei-Referenz für jeden Knoten FIPS_OS=true 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-Schlüsselspeicher für die Verwendung in Ihren API-Proxys oder virtuellen Hosts hochzuladen. 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ähigem RHEL 8.X verwenden, müssen die meisten TLS-bezogenen Komponentenkonfigurationen von Edge über Schlüsselspeicher im PKCS12- oder BCFKS-Format erfolgen.

Weitere Informationen finden Sie in der FIPS-spezifischen Dokumentation oder in den Anmerkungen in den entsprechenden Artikeln zur TLS-Konfiguration. Im Anhang finden Sie einige hilfreiche Befehle, mit denen Sie diese Schlüsselspeicher generieren können.

Standard-Java-Keystore/-Truststore

Wenn Edge for Private Cloud 4.53.00 oder höher auf FIPS-fähigem RHEL 8.X verwendet wird, nutzen der Nachrichtenprozessor, der Verwaltungsserver und andere edge-*-Komponenten den mitgelieferten Standard-Truststore und -Keystore.

Sie enthalten Zertifizierungsstellenzertifikate, die Ihrer Anwendung standardmäßig vertrauen. Wenn Sie Ihren eigenen Speicher mit CA-Zertifikaten verwenden möchten, gehen Sie so vor:

  1. Erstellen Sie eine cacerts-Datei im BCFKS-Format, die alle CA-Zertifikate enthält, die Sie als vertrauenswürdig einstufen möchten. Das Passwort für den Schlüsselspeicher und das Passwort für den Schlüssel müssen identisch sein. Weitere Informationen finden Sie im Anhang.
  2. Speichern Sie die Datei an einem geeigneten Pfad und achten Sie darauf, dass sie für den apigee-Nutzer lesbar ist:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Erstellen (oder bearbeiten) Sie die entsprechende Konfigurationsdatei für die 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
  4. 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
  5. Achten Sie darauf, dass der apigee-Nutzer Inhaber der Konfigurationsdatei ist und sie lesen kann:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Starten Sie die Komponente neu:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Anhang

Beispielbefehle für BCFKS-Schlüsselspeichervorgänge

Mit dem folgenden Befehl wird ein BCFKS-Schlüsselspeicher mit einem selbst signierten Schlüssel- und Zertifikatspaar 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

Die Keytool-Befehle bleiben unverändert, 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 Geschäftstyp 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 oder in einen Schlüsselspeicher im BCFKS-Format zu importieren oder zu exportieren. Weitere Informationen zur Arbeit 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 Hilfeartikel Zertifikate in ein unterstütztes Format konvertieren.