O Classic Load Balancer (CLB) aceita apenas certificados no formato PEM. Este tópico aborda os requisitos de formato para certificados e chaves privadas, além dos comandos do OpenSSL para converter certificados DER, P7B e PFX para PEM.
Tipos de certificado compatíveis
O CLB é compatível exclusivamente com certificados RSA. Não há suporte para certificados ECDSA (Elliptic Curve Digital Signature Algorithm).
|
Algoritmo |
Tamanhos de chave compatíveis |
|
RSA |
1024, 2048, 4096 bits |
Requisitos de formato de certificado
Arquivos PEM são extremamente sensíveis à formatação. Um único espaço extra ou caractere incorreto invalida o certificado, a cadeia de certificados ou a chave privada.
Certificados emitidos por CA raiz
Se uma autoridade certificadora (CA) raiz emitiu seu certificado diretamente, faça upload apenas do certificado. Nenhuma cadeia é necessária.
Requisitos de formato:
Iniciar com
-----BEGIN CERTIFICATE-----e terminar com-----END CERTIFICATE-----Ter 64 caracteres por linha (exceto na última linha)
Não conter espaços ou linhas em branco
Certificados emitidos por CA intermediária
Se uma CA intermediária emitiu seu certificado, envie a cadeia completa de certificados. Concatene os certificados na seguinte ordem:
Certificado do servidor (seu certificado)
Certificado(s) intermediário(s)
Certificado raiz (opcional, geralmente omitido)
Requisitos de formato:
Não incluir linhas em branco entre os certificados
Ter 64 caracteres por linha (conforme a RFC 1421)
Não conter espaços no conteúdo do certificado
Exemplo de estrutura de cadeia:
-----BEGIN CERTIFICATE-----
(server certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root certificate, optional)
-----END CERTIFICATE-----
Requisitos de chave privada
Ao enviar um certificado de servidor, envie também sua chave privada correspondente.
O CLB exige chaves privadas no formato PKCS#1 não criptografado. A chave privada deve:
Começar com
-----BEGIN RSA PRIVATE KEY-----e terminar com-----END RSA PRIVATE KEY-----Ter 64 caracteres por linha (exceto na última)
Não conter linhas em branco
Identificar e converter o formato da chave privada
Verifique o cabeçalho do arquivo da chave privada para determinar se é necessária uma conversão:
|
Cabeçalho |
Formato |
Ação |
|
|
PKCS#1, não criptografado |
Nenhuma conversão necessária |
|
|
PKCS#8, não criptografado |
Converter para PKCS#1 |
|
|
PKCS#8, criptografado |
Descriptografar e converter para PKCS#1 |
|
|
PKCS#1, criptografado |
Descriptografar |
Para converter para PKCS#1 não criptografado:
openssl rsa -in old_server_key.pem -out new_server_key.pem
No OpenSSL 3.x, o comandoopenssl rsagera saída em PKCS#8 por padrão. Adicione a flag-traditionalpara obter a saída em PKCS#1:
openssl rsa -in old_server_key.pem -out new_server_key.pem -traditional
Converter formatos de certificado
DER para PEM
O formato DER é comum em plataformas Java. As extensões de arquivo geralmente são .der, .cer ou .crt.
Converta um certificado:
openssl x509 -inform der -in certificate.cer -out certificate.pem
Converta uma chave privada:
openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem
P7B para PEM
O formato P7B é amplamente utilizado no Windows Server e no Tomcat.
Converta o certificado:
openssl pkcs7 -print_certs -in incertificate.p7b -out outcertificate.cer
PFX para PEM
O formato PFX é frequentemente usado no Windows Server.
Extraia o certificado:
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
Extraia a chave privada:
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes