Certificado SSL para Balanceadores de Carga

Use certificados de camada de soquete seguro (SSL) com seu balanceador de carga.

Observação

Este tópico descreve como criar e gerenciar certificados SSL no serviço Load Balancer. A Oracle recomenda enfaticamente que você use o serviço Certificates para criar e gerenciar certificados. Consulte Certificados para obter mais informações.

Para usar SSL padrão com um balanceador de carga e seus recursos, forneça um certificado.

Para usar mTLS (TLS mútuo) com seu balanceador de carga, adicione uma ou mais CA (autoridades de certificação) ou pacotes de autoridades de certificação (pacotes de CA) ao seu sistema.

  • Autoridade Certificadora: Uma autoridade certificadora privada capaz de emitir certificados-folha. Para um balanceador de carga e seus recursos associados, a CA é um armazenamento confiável criado dentro do serviço de certificados e não é submetido a upload pelo usuário.

  • Pacote de CA: Uma coleção de certificados públicos de CA que você pode carregar como um grupo agregado. Os bundles de CA não incluem chaves privadas ou certificados de folha.

Dica

É recomendável que você faça upload dos pacotes de certificado que deseja usar antes de criar os listeners ou os conjuntos de backend aos quais deseja associá-los.

Você pode executar as seguintes tarefas de certificado SSL:

Os balanceadores de carga geralmente usam certificados de um único domínio. No entanto, os balanceadores de carga com listeners que incluem a configuração de roteamento de solicitações (consulte Roteamento de Solicitações para Balanceadores de Carga) podem exigir um certificado de nome alternativo de assunto (SAN) (também chamado de certificado de vários domínios) ou um certificado curinga. O serviço Load Balancing suporta cada um desses tipos de certificado.

Observação

  • O serviço Load Balancer não gera certificados SSL. Só é possível importar um certificado existente que você já possui. O certificado pode ser emitido por um fornecedor, como Verisign ou GoDaddy. Você também pode usar um certificado autoassinado gerado com uma ferramenta de código-fonte aberto, como OpenSSL ou Let's Encrypt. Consulte a documentação da ferramenta correspondente para obter instruções sobre como gerar um certificado autoassinado.

  • Se você submeter um certificado autoassinado para SSL de backend, deverá submeter o mesmo certificado no campo Certificado de CA correspondente.

O Oracle Cloud Infrastructure aceita certificados do tipo x.509 apenas no formato PEM. Este é um exemplo de certificado codificado por PEM:


-----BEGIN CERTIFICATE-----
<Base64_encoded_certificate>
-----END CERTIFICATE-----

Convertendo para o Formato PEM

Se você receber os seus certificados e chaves em outros formatos que não sejam PEM, converta-os antes de carregá-los no sistema. Você pode usar OpenSSL para converter certificados e chaves para o formato PEM. Os exemplos de comandos a seguir vão orientá-lo.

Certificado ou Cadeia de Certificados de DER para PEM

openssl x509 -inform DER -in <certificate_name>.der -outform PEM -out <certificate_name>.pem

Chave Privada de DER para PEM

openssl rsa -inform DER -in <private_key_name>.der -outform PEM -out <private_key_name>.pem

Pacote de Certificados de PKCS#12 (PFX) para PEM

openssl pkcs12 -in <certificate_bundle_name>.p12 -out <certificate_bundle_name>.pem -nodes

Pacote de certificados de PKCS#7 para PEM

openssl pkcs7 -in <certificate_bundle_name>.p7b -print_certs -out <certificate_bundle_name>.pem

Configurando a Verificação de Certificado de Pareamento

A verificação de certificado de pareamento é usada para autenticação do cliente. A profundidade da verificação de certificado de pareamento é o número de certificados na cadeia que precisam ser verificados para autenticação do cliente.

Estes são os valores esperados a serem definidos:

  • Um certificado intermediário, certificado do cliente, certificado raiz - 2

  • Certificado do cliente, certificado raiz - 1s

Para determinar se a verificação do certificado de pareamento está configurada incorretamente, observe o seguinte:

  • O cliente indica que não é possível verificar o certificado e resulta em uma falha de handshake SSL do cliente. Essa mensagem de erro varia com base no tipo de cliente.

  • Nos logs do balanceador de carga, o seguinte erro aparece: Client %s has SSL certificate verify error

  • Use o utilitário OpenSSL para executar o seguinte comando: openssl verify -verbose -CAfile RootCert.pem Intermediate.pem

    Ocorreu um erro que mostra em qual profundidade a falha de validação está ocorrendo: error 20 at 0 depth lookup:unable to get local issuer certificate

Para resolver essa situação, forneça a profundidade correta do certificado e confirme se o certificado do cliente e o certificado da autoridade de certificação correspondem e estão na ordem correta.

Upload de Cadeias de Certificados

Se você tiver vários certificados que formam uma única cadeia de certificação (por exemplo, qualquer certificado de autoridade de certificação intermediário), inclua todos os certificados relevantes em um arquivo na ordem correta antes de fazer upload deles para o sistema. A ordem correta começa com o certificado diretamente assinado pela autoridade de certificação raiz confiável no final da lista. Todos os certificados adicionais são colados acima do certificado assinado.

Combine os arquivos de certificado do servidor (SSL_Certificate.crt) e certificado da autoridade de certificação intermediária (intermediateCA.crt) em um único arquivo concatenado.

Para obter um único arquivo concatenado do certificado SSL e do certificado da autoridade de certificação intermediária, abra um prompt de comando e execute o seguinte comando:

cat ssl_certificate.crt IntermediateCA.crt >> certbundle.pem

O seguinte exemplo de arquivo de cadeia de certificados concatenado inclui quatro certificados:

-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded_certificate
-----END CERTIFICATE-----

Submetendo Chaves Privadas

Observação

A Oracle recomenda um tamanho mínimo de 2.048 bits para sua chave privada RSA.

Se você receber um erro ao submeter a chave privada, os três motivos mais comuns poderão ser:

  • Você forneceu uma frase-senha incorreta.

  • A sua chave privada está incorreta.

  • O sistema não reconhece o método de criptografia usado para sua chave.

Incompatibilidade do Par de Chaves

Se você receber um erro relacionado à incompatibilidade das chaves privada e pública, antes de fazer upload, use os seguintes comandos OpenSSL para confirmar se as chaves fazem parte do mesmo par:

openssl x509 -in certificate_name.crt -noout -modulus | openssl sha1
openssl rsa -in private_key.key -noout -modulus | openssl sha1

Confirme se os valores de hash sha1 retornados correspondem com exatidão. Se forem diferentes, a chave privada fornecida não será usada para assinar o certificado público e não poderá ser usada.

Consistência de Chave Privada

Se você receber um erro relacionado à chave privada, poderá usar o OpenSSL para verificar sua consistência:

openssl rsa -check -in <private_key>.pem

Este comando verifica se a chave está intacta, a frase-senha está correta e se o arquivo contém uma chave privada RSA válida.

Decriptografando uma Chave Privada

Se o sistema não reconhecer a tecnologia de criptografia usada para a sua chave privada, decriptografe a chave. Faça upload da versão não criptografada da chave com o seu pacote de certificados. Você pode usar o OpenSSL para decriptografar uma chave privada:

openssl rsa -in <private_key>.pem -out <decrypted_private_key>.pem

Configurando o Tratamento de SSL

Saiba mais sobre a configuração do tratamento de SSL para um recurso do Balanceador de Carga.

Você pode executar as seguintes tarefas de tratamento de SSL para um balanceador de carga:

  • Encerrar o SSL no balanceador de carga. Essa configuração é chamada de SSL frontend. O seu balanceador de carga pode aceitar tráfego criptografado de um cliente. Não há criptografia de tráfego entre o balanceador de carga e os servidores de backend.

  • Implementar SSL entre o balanceador de carga e os seus servidores de backend. Essa configuração é chamada de SSL de backend. O seu balanceador de carga não aceita tráfego criptografado dos servidores clientes. O tráfego entre o balanceador de carga e os servidores de backend é criptografado.

  • Implementar SSL ponto a ponto. O seu balanceador de carga pode aceitar tráfego criptografado SSL proveniente dos clientes e criptografar o tráfego enviado para os servidores de backend.

Encerrando SSL  no Balanceador de Carga

Para terminar o protocolo SSL no balanceador de carga, você deve criar um listener em uma porta como 443 e, em seguida, associar ao listener um pacote de certificados carregado por upload. Consulte Criando um Listener do Balanceador de Carga para obter mais informações.

Implementando SSL de Backend

Para implementar SSL entre o balanceador de carga e os seus servidores de backend, você deve associar um pacote de certificados carregado por upload ao conjunto de backend. Consulte Criando um Conjunto de Backend do Balanceador de Carga para obter mais informações.

Observação

  • Se quiser ter mais de um servidor de backend no conjunto de backend, assine os seus servidores de backend com um certificado de CA intermediário. O certificado de CA intermediário deve ser incluído como parte do pacote de certificados.

  • Os seus serviços de backend devem ter a capacidade de aceitar e encerrar a SSL.

Implementando SSL Ponto a Ponto

Para implementar SSL ponto a ponto, associe pacotes de certificados transferidos por upload ao listener e ao conjunto de backend. Consulte Criando um Listener do Balanceador de Carga e Criando um Conjunto de Backend do Balanceador de Carga para obter mais informações.