Não é possível adicionar ouvinte SSL, certificado de servidor não encontrado para a chave

17

Estou tentando configurar o SSL no meu balanceador de carga com um certificado que comprei da GoDaddy.

Ao tentar enviar o certificado no console, recebi um erro

Failed to create load balancer: Server Certificate not found for the key: arn:aws:iam::************:server-certificate/mycert

Eu nunca encontrei esse erro antes de adicionar certificados SSL. Não sei por que iam é usado até aqui.

Depois de algumas pesquisas, pude fazer o upload do meu certificado para iam usando o aws cli (novamente, não sei por que eu tive que fazer isso).

Agora, ao modificar os ouvintes, posso ver meu certificado enviado como um certificado SSL existente. Quando tento salvar minhas alterações no balanceador de carga, recebo o mesmo erro. Verifiquei que o certificado existe:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(verifiquei que o número da conta ofuscada aqui é o mesmo que no erro)

A partir daqui estou preso. Por que não posso aplicar meu certificado a esse balanceador de carga?

Editar Qui Nov 19 11:47:18 PST 2015

Depois de esperar um pouco e sair e entrar, consegui atualizar os ouvintes com meu certificado SSL. No entanto, não parece estar funcionando corretamente. Ao tentar carregar meu domínio em HTTPS , a solicitação expira. Parece que não consegue carregar o certificado

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
    
por Steve Robbins 19.11.2015 / 20:40

12 respostas

28

Eu enfrentei o mesmo problema ao tentar criar o ELB a partir do console da web. Eu estava tentando criar um upload de um novo certificado lá via GUI e foi finalmente falhando com o mesmo erro. Eu resolvi isso enviando os arquivos de certificado separadamente via aws cli. É explicado neste documento - link

Carregue o certificado, a chave privada e a cadeia de certificados como esta

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

Em seguida, acesse o console da web e escolha a opção "Escolha um certificado existente no Gerenciamento de identidade e acesso (IAM) da AWS" e escolha o par de certificados que acabou de ser enviado. Vai funcionar bem depois disso.

    
por 11.12.2015 / 21:02
16

O erro é enganoso. Ele faz o upload do certificado. Depois de receber essa saída de erro, volte a mudar. Escolha o certificado IAM existente e clique no menu suspenso - você deverá ver o novo certificado lá.

    
por 07.11.2016 / 21:45
5

Eu tive o mesmo problema, mas felizmente consegui resolvê-lo sem ter que acertar o CLI. Peguei o ELB para adicionar um listener HTTPS colando a cadeia de certificados no campo certificado de chave pública , depois do próprio certificado.

O erro só se manifestou quando a cadeia de certificados foi colada em sua própria caixa de entrada cadeia de certificados no console (marcada como opcional). Não é realmente certo porque isso fez a diferença, mas criou o ouvinte HTTPS no ELB e tudo foi bom.

    
por 28.01.2016 / 11:20
3

Foi devido a um caracter especial no Nome do Certificado:. (ponto) no meu caso. Tudo funcionou bem depois de remover todos os pontos do nome do certificado

    
por 20.05.2016 / 05:43
2

Eu também toquei isso também. Tentei cinco vezes para criar um novo ELB e falhou todas as vezes. Nunca tentei usar a variante da API, mas consegui definir o certificado SSL por

  1. Primeiro criando o ELB; então
  2. modificando o ouvinte alterando de HTTP para HTTPS e carregando meu certificado + chave + intermediários.
por 03.02.2016 / 23:58
1

Eu enfrentei o mesmo problema. No meu caso, recebi o erro "Certificado do servidor não encontrado para a chave" ao fazer o upload de um certificado SSL, mas eles acabaram sendo enviados e exibidos na lista suspensa. Não recebo nenhum erro ao fazer o upload via CLI. Quando entrei em contato com o suporte da AWS, eles me deram o motivo abaixo para o erro

The reason for this happening is eventual consistency. The certificates that are uploaded are stored in IAM. Since IAM has a massive database, the uploaded certificate has to propagate through all the databases. If there is not enough time to propagate, the ELB that is trying to fetch this certificate won't be able to find it in the endpoint it is querying. Hence throws "Server Certificate not found for the key". When it eventually gets propagated, it later is able to see it as an already uploaded certificate

    
por 09.05.2017 / 04:14
1

Eu consegui contornar isso indo ao gerenciador de certificados no console do aws e fazendo upload lá primeiro. Em seguida, usando o assistente do balanceador de carga e selecionando o certificado que eu carreguei.

    
por 22.06.2017 / 21:51
0

O mesmo problema aqui ao usar a interface da Web da AWS: Carreguei um certificado válido, uma chave correta e a cadeia completa, mas recebi o erro mencionado acima.

Eu tentei usar o certificado para outro balanceador de carga (teste). O upload funcionou, mas o status do ouvinte é: "Certificado inválido".

Quando abri a caixa de diálogo "Selecionar certificado" novamente, nenhum certificado foi selecionado. Mas, obviamente, o certificado foi enviado corretamente, porque eu poderia selecioná-lo na lista de certificados.

Então, voltando ao meu balanceador de carga original, tentei atribuir esse certificado carregado, coisa estranha agora: ele não estava na lista. Eu dei uma nova tentativa e carreguei o certificado e sua chave, mas deixei de fora a cadeia de certificados. Isso funcionou, então eu sabia que deveria ser a cadeia, isso não é correto (é um commodo-cert). Eu baixei a cadeia novamente da página oficial, carreguei todo o pacote e funcionou. Coisa estranha agora: quando eu comparei os dois - o corrompido e o novo baixado, eles parecem o mesmo. Mesmas datas, mesma série, mesma mesma. Mas diferente.

Longa história: funcionou fazendo o download dos certificados intermediários novamente.

    
por 08.02.2016 / 11:19
0

Eu tive esse mesmo problema e o que, eventualmente, corrigiu, estava entrando no Grupo de segurança do balanceador de carga e certificando-se de que a porta 443 estava aberta.

    
por 21.03.2016 / 19:26
0

Antes de criar o balanceador de carga clássico, você precisa criar uma AMI (imagem da sua instância em produção) Com isso vá para as configurações de criação do balanceador de carga e faça o processo novamente e depois disso os certificados fornecidos e tudo vai bem no meu caso.

    
por 25.08.2016 / 13:18
0

Eu contornei isso por não preenchendo o campo opcional Cadeia de certificados .

    
por 05.09.2016 / 15:29
0

Eu tive o mesmo problema se estava fazendo o upload de um certificado diretamente.

Se eu usasse o Gerenciador de certificados (AWS Certificate Manager - ACM), conseguiria fazer o upload do certificado. Depois disso, eu poderia simplesmente selecionar o certificado dentro de uma lista suspensa.

    
por 09.10.2018 / 16:54