Estou tentando instalar um certificado GoDaddy SSL em um novo balanceador de carga que estou configurando no Amazon AWS. Eu originalmente criei o certificado em Godaddy usando o programa keytool para instalação direta em um servidor Glassfish 3.1 (Amazon linux ami). Não tive problemas para obter essa configuração diretamente no servidor. Agora preciso mover o certificado do servidor da web para o novo balanceador de carga. A Amazon exige que a chave privada e os certificados estejam no formato PEM, então usei a ferramenta "rekey" no GoDaddy para criar novos certificados. Quando eu os carrego na tela de configuração do balanceador de carga no AWS Mgmt Console, recebo a mensagem de erro: "O certificado de chave pública e a chave privada não correspondem".
Aqui está como estou criando as chaves:
$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr
Em seguida, envio o arquivo .csr para GoDaddy durante o processo de "recodificação". Assim que a recodificação for concluída, eu faço o download dos 2 certificados recém-criados (apps.mydomain.com.crt & gd_bundle.crt). Eu os baixa selecionando (Apache) como o tipo de servidor (também tentei "outro" e "Cpanel", mas todos parecem iguais).
Neste ponto, removo a criptografia do arquivo private.key usando o seguinte comando:
$ openssl rsa -in private.key -out private.pem
Neste ponto, eu volto para o console AWS Mgmt, crio o balanceador de carga, adiciono o redirecionamento de servidor seguro e coloco o conteúdo dos seguintes arquivos nos respectivos campos da tela onde ele pede para configurar o certificado SSL:
private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain
Quando clico no botão "continuar", recebo o erro "Erro: O certificado da chave pública e a chave privada não correspondem".
-Existe uma maneira de testar se estou recebendo uma mensagem de erro válida da Amazon? Parece estranho para mim que as chaves não coincidam quando estou seguindo as instruções de GoDaddy com atenção.
Tentei criar o arquivo private.key sem criptografia RSA antes de criar o .csr e isso não parece fazer diferença.
Também estou presumindo que os arquivos .crt que estou baixando do GoDaddy estão no formato .PEM, mas não tenho certeza de como verificar isso.
Alguma ideia?
fonte
Respostas:
Para mim, foi uma etapa fácil:
Converta a chave privada em PEM:
openssl rsa -in yourdomain.key -outform PEM
Converta o certificado e o pacote de certificados em PEM :
openssl x509 -inform PEM -in yourdomain.crt
openssl x509 -inform PEM -in bundle.crt
fonte
WARNING: can't open config file: /etc/pki/tls/openssl.cnf
-config
opção. Use-o para especificar o caminho para o arquivo de configuração que você está usando.Apenas para registro e para qualquer outra pessoa que esteja tentando descobrir:
seudominio.key -> comando do terminal:
sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem
-> chave privadaseudominio.crt -> chave pública
gd_bundle.crt -> cadeia de certificados
e você está pronto para ir :)
fonte
Parece que o problema era a maneira como eu estava copiando o conteúdo da chave e certificados para o console de gerenciamento da AWS. Eu estava usando um desktop Ubuntu rodando em Virtual Box em um desktop Windows 7; copie e cole os valores de uma tela do gedit no navegador em execução na caixa do Windows. Depois que abri os arquivos de chave e certificado na mesma caixa do navegador da web (Windows neste caso), os certificados funcionaram perfeitamente. Estou supondo que algumas partes do arquivo não estão sendo reproduzidas corretamente ao usar a prancheta compartilhada entre o cliente do Virtual Box e o host. Caso encerrado.
fonte
Encontramos uma solução alternativa para esse problema. Estávamos tendo os mesmos sintomas com o mesmo erro.
Em seguida, tentamos inserir novamente os códigos pem mais uma vez, mas desta vez garantimos que pressionamos enter uma vez e verificamos se o cursor estava em uma linha em branco no final de cada janela. Então nós o salvamos. FUNCIONOU.
Isso resolveu nosso problema, então pode resolver para outras pessoas.
fonte
Um pequeno pegadinha. Estou usando uma caixa do Windows (Win 7 Pro) e quando usei a porta do Windows do OpenSSL, os arquivos de saída tinham caracteres de fim de linha (LF) no estilo Unix.
Tive que converter o arquivo para o estilo do Windows (CRLF) para o upload da chave privada.
fonte
Posso sugerir uma solução alternativa e uma informação para vocês. Geralmente, todos os certificados são do formato de arquivo PEM. Você pode simplesmente abrir um bloco de notas ou qualquer editor de texto e arrastar os arquivos que você recebeu no formato de arquivo .crt. Que normalmente é chamado de arquivo .PEM. Se o certificado carregado em seu keytool, você pode exportar o certificado como um arquivo pfx do keytool. Em seguida, você pode separar o arquivo pfx da chave privada do arquivo pfx. Porque o arquivo pfx é a combinação de seu certificado e a chave privada. Portanto, você pode obter separadamente o arquivo de chave privada e usá-lo em seu aws amazon.
Suspeito que possa haver outra maneira de instalar o certificado. Pode ser que você possa entrar em contato com a autoridade de certificação e se houver alguma maneira de fazer com que seu certificado seja reemitido.
fonte