Edge pour un cloud privé sur RHEL 8.X ou Rocky 8.X compatible FIPS

Cette section explique comment activer le mode FIPS sur RHEL 8 afin de garantir un environnement sécurisé et conforme pour Edge pour le cloud privé version 4.53.00 ou ultérieure.

Préinstaller

Assurez-vous que FIPS est activé sur vos nœuds, ainsi que les autres prérequis de configuration standards listés dans la documentation Présentation de l'installation Edge.

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

Si le mode FIPS est actuellement désactivé, consultez la documentation officielle de Red Hat pour savoir comment l'activer : Passer RHEL 8 en mode FIPS.

Exigences pour Java

Le Java que vous utilisez doit être téléchargé à partir du dépôt Red Hat pour garantir que ses modules de sécurité sont conformes à la norme FIPS, ce qui permet d'appliquer des restrictions spécifiques à la norme FIPS via la sécurité Java.

Installation

Dans la documentation de référence sur le fichier de configuration Edge, définissez FIPS_OS=true sur chaque nœud. Vous pouvez suivre la procédure d'installation générale pour Edge pour le cloud privé comme d'habitude.

Format de la clé privée

Seul le format PKCS12/PFX peut être utilisé pour importer des clés privées dans les keystores Apigee afin de les utiliser dans vos proxys d'API ou vos hôtes virtuels. Pour obtenir de l'aide sur la création du fichier, consultez Convertir des certificats au format accepté.

Opérations TLS générales

Lorsque vous utilisez Edge for Private Cloud 4.53.00 ou version ultérieure sur RHEL 8.X ou Rocky 8.X compatibles avec FIPS, la plupart des configurations de composants liés à TLS d'Edge devront être effectuées via des keystores au format PKCS12 ou BCFKS.

Pour en savoir plus, consultez la documentation ou les notes spécifiques à FIPS dans les articles concernés sur la configuration de TLS. L'annexe liste certaines commandes utiles qui peuvent être utilisées pour générer ces keystores.

Keystore/Truststore Java par défaut

Lorsque vous utilisez Edge pour le cloud privé 4.53.00 ou version ultérieure sur RHEL 8.X ou Rocky 8.X compatibles avec FIPS, votre processeur de messages, votre serveur de gestion et d'autres composants edge-* s'appuient sur un truststore et un keystore par défaut fournis avec le produit.

Elles contiennent les certificats d'autorité de certification auxquels votre application fait confiance par défaut. Si vous souhaitez utiliser votre propre magasin contenant des certificats d'autorité de certification, suivez la procédure ci-dessous :

  1. Créez un fichier cacerts au format BCFKS contenant tous les certificats d'autorité de certification que vous souhaitez approuver. Assurez-vous que le mot de passe du keystore et celui de la clé sont identiques. Pour en savoir plus, consultez l'annexe.
  2. Placez le fichier dans un chemin d'accès approprié et assurez-vous qu'il est lisible par l'utilisateur Apigee :
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Créez (ou modifiez) le fichier de configuration approprié en fonction du composant avec lequel vous travaillez :
    Composant Fichier
    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. Ajoutez les lignes suivantes au fichier :
    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. Assurez-vous que le fichier de configuration appartient à l'utilisateur Apigee et qu'il peut le lire :
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Redémarrez le composant :
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Annexe

Exemples de commandes d'opération du keystore BCFKS

La commande ci-dessous génère un keystore BCFKS avec une paire clé/certificat autosignée :

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

Les commandes Keytool restent cohérentes avec celles généralement utilisées, mais les options suivantes doivent être incluses dans la commande 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

Arguments Keytool

Argument Keytool Description
-storetype Définissez le type de magasin sur BCFKS.
-providerpath Spécifiez le chemin d'accès à bc-fips-XXXX.jar. Cette version peut changer dans les futures versions d'OPDK. Utilisez la version fournie par Apigee ou téléchargez-la depuis les dépôts Bouncycastle. Pour OPDK 4.53, le chemin d'accès doit être /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Définissez cette valeur sur org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Définissez cette valeur sur BCFIPS.

Des commandes keytool similaires peuvent être utilisées pour importer ou exporter des certificats et/ou des clés depuis ou vers un keystore au format BCFKS. Pour en savoir plus sur l'utilisation des BCFKS, consultez la documentation BouncyCastle.

Magasin PKCS12

Pour générer un magasin PKCS12, vous pouvez utiliser les commandes 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

Si vous disposez de votre propre clé privée et de votre propre certificat, et que vous devez les convertir au format PKCS12, consultez Convertir des certificats dans un format compatible.