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:
- 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.
-
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
-
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 -
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
-
Assicurati che il file di configurazione sia di proprietà e leggibile dall'utente apigee:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
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.