Edge for Private Cloud su RHEL 8.x o Rocky 8.x abilitato per FIPS

Questa sezione fornisce indicazioni sull'attivazione della modalità FIPS su RHEL 8, garantendo un ambiente sicuro e conforme per Edge for Private Cloud versione 4.53.00 o successive.

Preinstallazione

Assicurati che FIPS sia abilitato sui nodi insieme agli altri prerequisiti di configurazione standard elencati nella documentazione Panoramica dell'installazione di Edge.

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

Se la modalità FIPS è attualmente disattivata, consulta la documentazione ufficiale di Red Hat per istruzioni su come attivarla: Switching RHEL 8 to FIPS mode.

Requisiti di Java

La versione di Java che utilizzi deve essere scaricata dal repository di Red Hat per garantire che i suoi moduli di sicurezza siano conformi allo standard FIPS, consentendo restrizioni specifiche per FIPS tramite la sicurezza Java.

Installazione

In Edge Configuration File Reference, imposta FIPS_OS=true su ogni nodo. Puoi seguire i passaggi di installazione generali per Edge for Private Cloud come di consueto.

Formato della chiave privata

Solo il formato PKCS12/PFX può essere utilizzato per caricare le chiavi private nei keystore Apigee da utilizzare nei proxy API o negli host virtuali. Per indicazioni sulla creazione del file, consulta Convertire i certificati nel formato supportato.

Operazioni TLS generali

Quando utilizzi Edge for Private Cloud 4.53.00 o versioni successive su RHEL 8.X o Rocky 8.X abilitato per FIPS, la maggior parte delle configurazioni dei componenti correlati a TLS di Edge dovrà essere eseguita tramite keystore in formato PKCS12 o BCFKS.

Per ulteriori dettagli, consulta la documentazione o le note specifiche per FIPS negli articoli pertinenti per la configurazione TLS. L'appendice elenca alcuni comandi utili che possono essere utilizzati per generare questi keystore.

Keystore/truststore Java predefinito

Quando Edge for Private Cloud 4.53.00 o versioni successive viene utilizzato su RHEL 8.X o Rocky 8.X abilitato per FIPS, il processore di messaggi, il server di gestione e altri componenti edge-* si basano su un truststore e un keystore predefiniti forniti con il prodotto.

Contengono i certificati CA considerati attendibili per impostazione predefinita dalla tua applicazione. Se vuoi utilizzare il tuo archivio contenente i certificati CA, segui la procedura riportata di seguito:

  1. Crea un file cacerts in formato BCFKS contenente tutti i certificati CA di cui vuoi fidarti. Assicurati che la password del keystore e la password della chiave siano le stesse. Per ulteriori dettagli, consulta l'appendice.
  2. Inserisci il file in un percorso appropriato e assicurati che sia leggibile dall'utente apigee:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Crea (o modifica) il file di configurazione appropriato in base al componente con cui stai lavorando:
    Componente File
    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. Aggiungi le seguenti righe al file:
    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. Assicurati che il file di configurazione sia di proprietà dell'utente apigee e che possa essere letto da quest'ultimo:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Riavvia il componente:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Appendice

Comandi di esempio per l'operazione di keystore BCFKS

Il comando riportato di seguito genera un keystore BCFKS con una coppia di chiave e certificato autofirmati:

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

I comandi Keytool rimangono coerenti con quelli utilizzati in genere, ma le seguenti opzioni devono essere incluse nel comando Keytool:

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

Argomenti di Keytool

Argomento Keytool Descrizione
-storetype Imposta il tipo di negozio su BCFKS.
-providerpath Specifica il percorso di bc-fips-XXXX.jar. Questa versione potrebbe cambiare nelle versioni future di OPDK. Utilizza la versione fornita da Apigee o scaricala dai repository di Bouncycastle. Per OPDK 4.53, il percorso deve essere /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Imposta questo valore su org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Imposta questo valore su BCFIPS.

Comandi keytool simili possono essere utilizzati per importare o esportare certificati e/o chiavi da o verso un keystore in formato BCFKS. Per ulteriori informazioni su come utilizzare BCFKS, consulta la documentazione di BouncyCastle.

Archivio PKCS12

Per generare un archivio PKCS12, è possibile utilizzare i comandi 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

Se hai la tua chiave privata e il tuo certificato e devi convertirli in formato PKCS12, consulta Conversione dei certificati nel formato supportato.