En esta sección, se proporciona orientación para habilitar el modo FIPS en RHEL 8, lo que garantiza un entorno seguro y conforme para Edge para la nube privada 4.53.00 o versiones posteriores.
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 usas debe descargarse del repositorio de Red Hat para garantizar que sus módulos de seguridad cumplan con el estándar FIPS, lo que habilita 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 de instalación generales de Edge para una nube privada 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 para usarlas en tus proxies de API o hosts virtuales. Para obtener ayuda para crear el archivo, consulta Cómo convertir certificados a un formato compatible.
Operaciones generales de TLS
Cuando uses Edge para la nube privada 4.53.00 o versiones posteriores en RHEL 8.X habilitado 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 relevantes sobre la configuración de TLS para obtener más detalles. En el anexo, se enumeran algunos comandos útiles que se pueden usar para generar estos almacenes de claves.
Almacén de claves o almacén de confianza predeterminado de Java
Cuando se usa Edge for Private Cloud 4.53.00 o una versión posterior en RHEL 8.X habilitado para FIPS, el procesador de mensajes, el servidor de administración y otros componentes de 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 AC en los que tu aplicación confía de forma predeterminada. Si deseas usar tu propio almacén que contiene certificados de AC, sigue el siguiente procedimiento:
-
Crea un archivo
cacerts
en formato BCFKS que contenga todos los certificados de la AC 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 iguales. Consulta el anexo para obtener más detalles. -
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
-
Crea (o edita) el archivo de configuración adecuado según el componente con el que estés trabajando:
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 -
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
-
Asegúrate de que el usuario de apigee sea el propietario del archivo de configuración y pueda leerlo:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
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 de BCFKS
El siguiente comando genera un almacén de claves de 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 suelen usar, pero se deben incluir las siguientes opciones en el 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
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 . Es posible que esta versión cambie en versiones futuras de OPDK. Usa la versión que envía Apigee o descárgala de los repositorios de Bouncycastle. Para OPDK 4.53, la ruta de acceso 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 similares de keytool 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 BCFKS, consulta la documentación de BouncyCastle.
Almacén de PKCS12
Para generar un almacén PKCS12, se pueden usar los siguientes comandos 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 a formato PKCS12, consulta Cómo convertir certificados a un formato compatible.