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

19

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 iamest même utilisé ici.

Après quelques recherches sur Google, j'ai pu télécharger mon certificat sur iamaws 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 HTTPSla 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
Steve Robbins
la source
1
Les certificats sont toujours stockés dans IAM, il semble donc que vous ayez atteint un délai de réplication IAM ou une autre erreur où le certificat semblait être stocké correctement, mais n'était pas là ... ce que vous auriez dû initialement travailler. Le groupe de sécurité ELB est-il ouvert au monde pour HTTPS? Si oui, alors vous avez une deuxième anomalie ici et je suggère de créer un nouvel ELB à partir de zéro et de voir s'il se comporte différemment.
Michael - sqlbot

Réponses:

30

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.

suryasankar
la source
1
J'ai eu le même problème. Résolu comme vous le décrivez, en utilisant le client aws comme suggéré par le lien que vous partagez. L'utilisation du formulaire Web de la console IAM pour coller la clé, le crt et la chaîne n'a PAS fonctionné pour moi. J'ai installé le client aws sur ma machine de développement, je l'ai installé avec "configuration aws" pour ajouter des informations d'identification, puis j'ai exécuté la commande aws iam uplad-server-certificate ...
wojjas
L'interface graphique m'a donné des problèmes, CLI n'a pas ... comme d'habitude.
Spechal
1
Pour une mise à jour (c'est maintenant 2017), je viens de parler avec le support d'Amazon et c'est toujours un problème connu. La CLI est le seul moyen de s'assurer que ce processus fonctionnera correctement. -_-
Nicholas Kreidberg
2
Mi-2017 et le problème persiste.
Diogo Melo
2
Fin janvier 2018 - photo et émission
Andrew S
17

L'erreur est trompeuse. Il télécharge le certificat. Une fois que vous avez reçu 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à-bas.

user384640
la source
C'est ce qui m'est arrivé aussi. J'ai eu l'erreur, j'ai supposé que cela signifiait que le certificat n'avait pas été téléchargé, alors j'ai réessayé ... et j'ai eu une erreur différente, indiquant que le certificat était déjà là. Quitter l'interface utilisateur du "nouveau certificat" et revenir en arrière et choisir le certificat que je viens de télécharger en tant que certificat "existant" a très bien fonctionné.
coredumperror
1
Je vous remercie! C'est tellement foiré. Je ne peux pas croire qu'ils n'aient pas réglé quelque chose comme ça.
né le
c'est exactement correct
shareef
Cela continue à se produire dans le flux de travail de téléchargement de certificat ELB IAM, mais ils l'ont corrigé dans le flux de travail de téléchargement de certificat ALB IAM.
Josip Rodin
5

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 la chaîne de certificats dans le champ de 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 de 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 allait bien.

Matthew Long
la source
Cela a fonctionné pour moi tout à l'heure avec un certificat Comodo DV acheté via SSLmate. Un autre problème est que j'ai eu une erreur juste après avoir cliqué sur le bouton final «soumettre», qui a été corrigé en re-cliquant sur le bouton après quelques secondes (retard de propagation IAM en raison d'une cohérence éventuelle?)
RichVel
3

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

essis
la source
1
Et supprimez également "-" tiret
ysrb
2

Je viens de frapper aussi. J'ai essayé cinq fois de créer un nouvel ELB et cela 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; ensuite
  2. modifier l'auditeur en passant de HTTP à HTTPS et en téléchargeant mon certificat + clé + intermédiaires.
Ztyx
la source
1

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é

Ramadas
la source
1

J'ai contourné cela en allant au 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é.

user160004
la source
heures supplémentaires, je télécharge SSL sur AWS, je rencontre un problème différent. Cette fois, la configuration dans le gestionnaire de certificats, puis son utilisation dans EC2 Load Balancer a fonctionné !!
user566245
0

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: quand je les ai comparés 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.

nr
la source
0

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.

Chris DeGroat
la source
0

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.

dbarenas
la source
0

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

Danny Schoemann
la source
0

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.

flokoe
la source