Edge for Private Cloud su RHEL 8.X con FIPS abilitato

Questa sezione fornisce indicazioni su come attivare la modalità FIPS su RHEL 8, garantendo un ambiente sicuro e conforme per Edge for Private Cloud 4.53.00 o versioni 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: Passaggio alla modalità FIPS in RHEL 8.

Requisiti Java

Java deve essere scaricato dal repository di Red Hat per garantire che i relativi moduli di sicurezza siano conformi a FIPS, attivando le restrizioni specifiche di FIPS tramite la sicurezza Java.

Installazione

Nel File di riferimento per la configurazione di Edge, imposta FIPS_OS=true su ogni nodo. Puoi seguire i passaggi di installazione generali per Edge for Private Cloud come di consueto.

Formato chiave privata

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

Operazioni TLS generali

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

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

Keystore/truststore Java predefinito

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

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

  1. Crea un file cacerts in formato BCFKS contenente tutti i certificati CA che vuoi considerare attendibili. Assicurati che la password del keystore e la password della chiave siano uguali. Per ulteriori dettagli, consulta l'appendice.
  2. Posiziona 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à e leggibile dall'utente apigee:
    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 le operazioni del keystore BCFKS

Il comando seguente genera un keystore BCFKS con una coppia di chiavi e certificati 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 invariati rispetto a quelli in genere utilizzati, 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 release 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, puoi 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 una chiave privata e un certificato e devi convertirli in formato PKCS12, consulta la sezione Convertire i certificati in formato supportato.