Esta seção fornece orientações sobre como ativar o modo FIPS no RHEL 8, garantindo um ambiente seguro e em conformidade com as versões 4.53.00 ou mais recentes do Edge para nuvem privada.
Pré-instalar
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 do Red Hat para saber como ativá-lo: Como mudar o RHEL 8 para o modo FIPS.
Requisitos do Java
O Java que você usa precisa ser baixado do repositório da Red Hat para garantir que os módulos de segurança sejam compatíveis 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 normalmente.
Formato da chave privada
Somente o formato PKCS12/PFX pode ser usado para fazer upload de chaves privadas para chaveiros 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 aceito.
Operações TLS gerais
Ao usar o Edge para nuvem privada 4.53.00 ou versões mais recentes no RHEL 8.X com a FIPS ativada, a maioria das configurações de componentes relacionados ao TLS do Edge precisa ser feita usando chaveiros no formato PKCS12 ou BCFKS.
Consulte a documentação específica do FIPS ou as notas em artigos relevantes para a configuração do TLS e saiba mais detalhes. O apêndice lista alguns comandos úteis que podem ser usados para gerar esses keystores.
Keystore/truststore Java padrão
Quando o Edge for Private Cloud 4.53.00 ou mais recente é usado no RHEL 8.X com a FIPS ativada, o processador de mensagens, o servidor de gerenciamento e outros componentes de edge-* dependem de um repositório de chaves e de confiança padrão fornecidos com o produto.
Eles contêm certificados de AC em que o aplicativo confia por padrão. Se você quiser usar sua própria loja que contém certificados de AC, siga o procedimento abaixo:
-
Crie um arquivo
cacerts
no formato BCFKS que contenha todos os certificados de AC 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. -
Coloque o arquivo em um caminho adequado e verifique se ele pode ser lido pelo usuário da Apigee:
cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
-
Crie (ou edite) o arquivo de configuração apropriado 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 roteador de borda $/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 -
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
-
Verifique se o arquivo de configuração pertence ao usuário da Apigee e se ele pode ser lido:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
Reinicie o componente:
/opt/apigee/apigee-service/bin/apigee-service <component> restart
Apêndice
Exemplos de comandos de operação do keystore do BCFKS
O comando abaixo gera um keystore BCFKS com um par de chaves 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 do 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 do Keytool
Argumento 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 dela nos repositórios do Bouncycastle. Para o OPDK 4.53, o caminho precisa 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 semelhantes do keytool 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 o BCFKS, consulte a documentação do BouncyCastle.
Armazenamento PKCS12
Para gerar uma loja PKCS12, os comandos openssl
podem ser usados:
# 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 para o formato PKCS12, consulte Converter certificados para o formato aceito.