Edge para la nube privada en RHEL 8.X o Rocky 8.X habilitados para FIPS

En esta sección, se proporciona orientación para habilitar el modo FIPS en RHEL 8, lo que garantiza un entorno seguro y compatible para las versiones 4.53.00 o posteriores de Edge para la nube privada.

Preinstalación

Asegúrate de que FIPS esté habilitado en tus nodos junto con los otros requisitos previos de configuración estándar que se indican en la documentación de Descripción general de la instalación de Edge.

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

Si el modo FIPS está inhabilitado, consulta la documentación oficial de Red Hat para obtener instrucciones sobre cómo habilitarlo: Cómo cambiar RHEL 8 al modo FIPS.

Requisitos para Java

El Java que uses debe descargarse del repositorio de Red Hat para garantizar que sus módulos de seguridad cumplan con el estándar FIPS, lo que permite restricciones específicas de FIPS a través de la seguridad de Java.

Instalación

En la Referencia del archivo de configuración de Edge, establece FIPS_OS=true en cada nodo. Puedes seguir los pasos generales de instalación de Edge para nubes privadas como de costumbre.

Formato de clave privada

Solo se puede usar el formato PKCS12/PFX para subir claves privadas a los almacenes de claves de Apigee y usarlas en tus proxies de API o hosts virtuales. Para obtener orientación sobre cómo crear el archivo, consulta Cómo convertir certificados al formato admitido.

Operaciones generales de TLS

Cuando se usa Edge para Private Cloud 4.53.00 o versiones posteriores en RHEL 8.X o Rocky 8.X habilitados para FIPS, la mayoría de las configuraciones de componentes relacionadas con TLS de Edge deberán realizarse a través de almacenes de claves en formato PKCS12 o BCFKS.

Consulta la documentación específica de FIPS o las notas en los artículos pertinentes para obtener más detalles sobre la configuración de TLS. En el apéndice, se enumeran algunos comandos útiles que se pueden usar para generar estos almacenes de claves.

Almacén de claves y almacén de confianza predeterminados de Java

Cuando se usa Edge para la nube privada 4.53.00 o una versión posterior en RHEL 8.X o Rocky 8.X habilitados para FIPS, el procesador de mensajes, el servidor de administración y otros componentes edge-* dependen de un almacén de confianza y un almacén de claves predeterminados que se proporcionan con el producto.

Estos contienen certificados de CA en los que tu aplicación confía de forma predeterminada. Si deseas usar tu propio almacén que contiene certificados de CA, sigue el procedimiento que se indica a continuación:

  1. Crea un archivo cacerts en formato BCFKS que contenga todos los certificados de CA en los que deseas confiar. Asegúrate de que la contraseña del almacén de claves y la contraseña de la clave sean las mismas. Consulta el apéndice para obtener más detalles.
  2. Coloca el archivo en una ruta de acceso adecuada y asegúrate de que el usuario de Apigee pueda leerlo:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Crea (o edita) el archivo de configuración adecuado según el componente con el que trabajes:
    Componente Archivo
    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. Agrega las siguientes líneas al archivo:
    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. Asegúrate de que el archivo de configuración sea propiedad del usuario de Apigee y que este pueda leerlo:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Reinicia el componente:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Apéndice

Comandos de muestra de la operación del almacén de claves BCFKS

El siguiente comando genera un almacén de claves BCFKS con un par de claves y certificados autofirmados:

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

Los comandos de Keytool siguen siendo coherentes con los que se usan normalmente, pero se deben incluir las siguientes opciones en el comando de 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

Argumentos de Keytool

Argumento de Keytool Descripción
-storetype Establece el tipo de tienda en BCFKS.
-providerpath Especifica la ruta de acceso a bc-fips-XXXX.jar. Esta versión puede cambiar en futuras versiones del OPDK. Usa la versión que se incluye en Apigee o descárgala de los repositorios de Bouncy Castle. Para OPDK 4.53, la ruta debe ser /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Configura esto como org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Configura esto como BCFIPS.

Se pueden usar comandos keytool similares para importar o exportar certificados o claves desde o hacia un almacén de claves en formato BCFKS. Para obtener más información sobre cómo trabajar con archivos BCFKS, consulta la documentación de BouncyCastle.

Almacén de PKCS12

Para generar un almacén PKCS12, se pueden usar los siguientes comandos de 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 tienes tu propia clave privada y certificado, y necesitas convertirlos al formato PKCS12, consulta Cómo convertir certificados al formato admitido.