Edge para nuvem privada no RHEL 8.X ou Rocky 8.X com FIPS ativado

Esta seção fornece orientações sobre como ativar o modo FIPS no RHEL 8, garantindo um ambiente seguro e em conformidade para as versões 4.53.00 ou mais recentes do Edge para nuvem privada.

Pré-instalação

Verifique se o FIPS está ativado nos seus nós, além dos outros pré-requisitos de configuração padrão listados na documentação Visão geral da instalação do Edge.

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

Se o modo FIPS estiver desativado, consulte a documentação oficial da Red Hat para instruções sobre como ativá-lo: Como mudar o RHEL 8 para o modo FIPS (em inglês).

Requisitos do Java

O Java usado precisa ser baixado do repositório da Red Hat para garantir que os módulos de segurança estejam em conformidade com o FIPS, permitindo restrições específicas do FIPS pela segurança do Java.

Instalação

Na Referência do arquivo de configuração do Edge, defina FIPS_OS=true em cada nó. Siga as etapas gerais de instalação do Edge para nuvem privada como de costume.

Formato da chave privada

Somente o formato PKCS12/PFX pode ser usado para fazer upload de chaves privadas para keystores do Apigee para uso em proxies de API ou hosts virtuais. Para orientações sobre como criar o arquivo, consulte Converter certificados para o formato compatível.

Operações gerais de TLS

Ao usar o Edge para nuvem privada 4.53.00 ou versões mais recentes no RHEL 8.X ou Rocky 8.X habilitados para FIPS, a maioria das configurações de componentes relacionadas ao TLS do Edge precisará ser feita por keystores no formato PKCS12 ou BCFKS.

Consulte a documentação ou as observações específicas do FIPS em artigos relevantes para mais detalhes sobre a configuração do TLS. O apêndice lista alguns comandos úteis que podem ser usados para gerar esses keystores.

Keystore/truststore padrão do Java

Quando o Edge para nuvem privada 4.53.00 ou versões mais recentes é usado no RHEL 8.X ou Rocky 8.X habilitado para FIPS, o processador de mensagens, o servidor de gerenciamento e outros componentes edge-* dependem de um truststore e um keystore padrão fornecidos com o produto.

Eles contêm certificados de CA em que seu aplicativo confia por padrão. Se você quiser usar seu próprio repositório com certificados de CA, siga o procedimento abaixo:

  1. Crie um arquivo cacerts no formato BCFKS que contenha todos os certificados de CA em que você quer confiar. Verifique se a senha do keystore e a senha da chave são iguais. Consulte o apêndice para mais detalhes.
  2. Coloque o arquivo em um caminho adequado e verifique se ele pode ser lido pelo usuário do Apigee:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Crie (ou edite) o arquivo de configuração adequado com base no componente com que você está trabalhando:
    Componente Arquivo
    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. Adicione as seguintes linhas ao arquivo:
    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. Verifique se o arquivo de configuração pertence ao usuário do Apigee e pode ser lido por ele:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Reinicie o componente:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Apêndice

Exemplos de comandos de operação do keystore BCFKS

O comando abaixo gera um keystore BCFKS com um par de chave e certificado autoassinado:

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

Os comandos do Keytool permanecem consistentes com os usados normalmente, mas as seguintes opções precisam ser incluídas no comando:

--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 do Keytool

Argumento do Keytool Descrição
-storetype Defina o tipo de loja como BCFKS.
-providerpath Especifique o caminho para bc-fips-XXXX.jar. Essa versão pode mudar em versões futuras do OPDK. Use a versão enviada pela Apigee ou faça o download nos repositórios do Bouncy Castle. Para o OPDK 4.53, o caminho deve ser /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Defina como org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Defina como BCFIPS.

Comandos keytool semelhantes podem ser usados para importar ou exportar certificados e/ou chaves de ou para um keystore no formato BCFKS. Para mais informações sobre como trabalhar com BCFKS, consulte a documentação do BouncyCastle.

Armazenamento PKCS12

Para gerar um armazenamento PKCS12, use os 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

Se você tiver sua própria chave privada e certificado e precisar convertê-los em um formato PKCS12, consulte Converter certificados para um formato compatível.