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

Questo articolo contiene dettagli e istruzioni destinati ai clienti di Edge for Private Cloud che utilizzano la versione 4.53.00 o successive, in esecuzione su RHEL 8.X con FIPS abilitato.

Preinstallazione

Assicurati che FIPS sia attivato sui tuoi nodi, oltre agli altri prerequisiti di configurazione standard elencati nella documentazione di Edge for Private Cloud.

fips-mode-setup --check
FIPS mode is enabled.

Se al momento la modalità FIPS è disattivata, consulta la documentazione ufficiale di Red Hat per istruzioni su come attivarla:

Requisiti Java

Java deve essere scaricato dal repository di Red Hat per garantire che i moduli di sicurezza di Java siano conformi a FIPS e possano implementare limitazioni specifiche di FIPS tramite la sicurezza di Java.

Installazione

Nel riferimento del file di configurazione dell'installazione silenziosa, 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 assistenza nella creazione del file, consulta la sezione 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 a 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 specifica per FIPS o le note sugli 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 eseguito su RHEL 8.X abilitato per 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 sostituirlo con il tuo negozio 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  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 generalmente eseguiti, ma al comando keytool devono essere aggiunte le seguenti opzioni:

--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 Il tipo di negozio è BCFKS.
-providerpath Percorso di bc-fips-XXXX.jar. La versione di questo file JAR potrebbe cambiare nelle versioni future di OPDK. Deve essere utilizzata la versione fornita da Apigee. Puoi anche scaricare il file JAR dai repository di Bouncycastle. A partire dalla release di OPDK 4.53, dovrebbe essere /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Deve essere impostato su org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Deve essere impostato 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 di tua proprietà e vuoi impacchettarli in un file PKCS12, consulta la sezione Convertire i certificati in formato supportato.