web-dev-qa-db-fra.com

Impossible d'ajouter l'écouteur SSL, certificat de serveur introuvable pour la clé

J'essaie de configurer SSL sur mon équilibreur de charge avec un certificat que j'ai acheté auprès de GoDaddy.

Lorsque j'essaie de télécharger le certificat dans la console, j'ai une erreur

Échec de création de l'équilibreur de charge: certificat de serveur introuvable pour la clé: arn: aws: iam :: ************: server-certificate/mycert

Je n'ai jamais rencontré cette erreur auparavant lors de l'ajout de certificats SSL. Je ne sais pas pourquoi iam est même utilisé ici.

Après quelques recherches sur Google, j'ai pu télécharger mon certificat sur iam en utilisant aws cli (encore une fois, je ne sais pas pourquoi j'ai dû le faire).

Maintenant, lorsque je modifie les écouteurs, je peux voir mon certificat téléchargé comme un certificat SSL existant. Cependant, lorsque j'essaie d'enregistrer mes modifications dans l'équilibreur de charge, j'obtiens la même erreur. J'ai vérifié que le certificat 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"
        }
    ]
}

(J'ai vérifié que le numéro de compte masqué ici est le même que dans l'erreur)

De là, je suis coincé. Pourquoi ne puis-je pas appliquer mon certificat à cet équilibreur de charge?


Modifier jeu 19 nov 11:47:18 PST 2015

Après avoir attendu un moment et me déconnecter et me connecter, j'ai pu mettre à jour les écouteurs avec mon certificat SSL. Cependant, il ne semble pas fonctionner correctement. Lorsque vous essayez de charger mon domaine sur HTTPS, la demande expire. Il semble impossible de charger le certificat

$ 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
20
Steve Robbins

J'ai rencontré le même problème en essayant de créer l'ELB à partir de la console Web. J'essayais de créer un téléchargement d'un nouveau certificat via l'interface graphique et il a finalement échoué avec la même erreur. Je l'ai résolu en téléchargeant les fichiers de certificat séparément via aws cli. Il est expliqué dans ce document - http://docs.aws.Amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

Téléchargez le certificat, la clé privée et la chaîne de certificats comme ceci

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

Ensuite, accédez à la console Web et choisissez l'option "Choisir un certificat existant dans AWS Identity and Access Management (IAM)" et choisissez la paire de certificats qui vient d'être téléchargée. Cela fonctionnera bien après cela.

32
suryasankar

L'erreur est trompeuse. Il télécharge le certificat. Une fois que vous recevez cette erreur, quittez puis revenez au changement. Choisissez le certificat IAM existant et cliquez sur le menu déroulant - vous devriez voir le nouveau certificat là.

17
user384640

J'ai eu le même problème, mais heureusement, j'ai réussi à le résoudre sans avoir à frapper la CLI. J'ai obtenu l'ELB pour ajouter un écouteur HTTPS en collant le chaîne de certificats dans le champ certificat de clé publique , après le certificat lui-même .

L'erreur ne s'est manifestée que lorsque la chaîne de certificats a été collée dans sa propre zone de saisie chaîne de certificats dans la console (marquée facultative). Je ne sais pas vraiment pourquoi cela a fait une différence mais cela a créé l'écouteur HTTPS sur l'ELB et tout était bon.

5
Matthew Long

C'était dû à un caractère spécial dans le nom du certificat:. (Point) dans mon cas. Tout a bien fonctionné après avoir supprimé tous les points du nom du certificat

3
essis

Je viens de frapper aussi. J'ai essayé cinq fois de créer un nouvel ELB et il a échoué à chaque fois. Je n'ai jamais essayé de variante API, mais j'ai réussi à définir le certificat SSL par

  1. Créer d'abord l'ELB; puis
  2. modifier l'auditeur en passant de HTTP à HTTPS et en téléchargeant mon certificat + clé + intermédiaires.
2
Ztyx

J'ai contourné cela en allant dans le gestionnaire de certificats dans la console aws et en y téléchargeant d'abord. Ensuite, en utilisant l'assistant d'équilibrage de charge et en sélectionnant le certificat que j'avais téléchargé.

1
user160004

J'ai fait face au même problème. Dans mon cas, j'ai reçu l'erreur "Certificat de serveur introuvable pour la clé" lors du téléchargement d'un certificat SSL, mais ils sont finalement téléchargés et apparaissent dans la liste déroulante. Je ne reçois aucune erreur lors du téléchargement via CLI. Lorsque j'ai contacté le support AWS, ils m'ont donné la raison de l'erreur ci-dessous

La raison de cet événement est la cohérence éventuelle. Les certificats téléchargés sont stockés dans IAM. Comme IAM possède une énorme base de données, le certificat téléchargé doit se propager à travers toutes les bases de données. S'il n'y a pas assez de temps pour se propager, l'ELB qui essaie de récupérer ce certificat ne pourra pas le trouver dans le point de terminaison qu'il interroge. Par conséquent, lance "Certificat de serveur introuvable pour la clé". Quand il finit par se propager, il pourra plus tard le voir comme un certificat déjà téléchargé

1
Ramadas

J'ai eu le même problème si je téléchargeais un certificat directement.

Si j'ai utilisé le gestionnaire de certificats (AWS Certificate Manager - ACM), j'ai pu télécharger le certificat. Après cela, je pouvais simplement sélectionner le certificat dans une liste déroulante.

0
flokoe

Avant de créer l'équilibreur de charge classique, vous devez créer une AMI (image de votre instance en production) .Avec cela, allez dans les paramètres de création de l'équilibreur de charge et recommencez le processus et après cela, les certificats fournis et tout va bien dans mon cas.

0
dbarenas

J'ai contourné cela en pas en remplissant le champ facultatif Chaîne de certificats.

0
Danny Schoemann

J'ai eu ce même problème et ce qui a finalement été résolu allait dans le groupe de sécurité pour l'équilibreur de charge et s'assurait que le port 443 était ouvert.

0
Chris DeGroat

Même problème ici lors de l'utilisation de l'interface Web AWS: j'ai téléchargé un certificat valide, la clé correcte et la chaîne complète mais j'ai eu l'erreur mentionnée ci-dessus.

J'ai essayé de télécharger le certificat vers un autre équilibreur de charge (test). Le téléchargement a fonctionné, mais l'état de l'auditeur indique alors: "Certificat non valide".

Lorsque j'ai rouvert la boîte de dialogue "Sélectionner un certificat", aucun certificat n'a été sélectionné. Mais évidemment, le certificat a été téléchargé correctement, car je pouvais le sélectionner dans la liste des certificats.

Donc, de retour à mon équilibreur de charge d'origine, j'ai essayé d'attribuer ce certificat téléchargé, chose étrange maintenant: il n'était pas dans la liste. Je lui ai donné un nouvel essai et téléchargé le certificat et sa clé, mais j'ai laissé de côté la chaîne de certificats. Cela a fonctionné, donc je savais que ce devait être la chaîne, ce n'est pas correct (c'est un commodo-cert). J'ai à nouveau téléchargé la chaîne à partir de la page officielle, téléchargé le paquet entier et cela a fonctionné. Chose étrange maintenant: lorsque je les compare tous les deux - le corrompu et le nouveau téléchargé, ils semblent identiques. Mêmes dates, même série, mêmes mêmes. Mais différent.

Pour faire court: cela a fonctionné en téléchargeant à nouveau les certificats intermédiaires.

0
n.r.