"Le certificat de clé publique et la clé privée ne correspondent pas" lors de l'utilisation du certificat émis par Godaddy [fermé]

86

J'essaie d'installer un certificat SSL GoDaddy sur un nouvel équilibreur de charge que je configure sur Amazon AWS. J'ai initialement créé le certificat chez Godaddy en utilisant le programme keytool pour une installation directe sur un serveur Glassfish 3.1 (ami Amazon linux). Je n'ai eu aucun problème à obtenir cette configuration directement sur le serveur. Je dois maintenant déplacer le certificat du serveur Web vers le nouvel équilibreur de charge. Amazon exige que la clé privée et les certificats soient au format PEM, j'ai donc utilisé l'outil "rekey" chez GoDaddy pour créer de nouveaux certificats. Lorsque je les charge dans l'écran de configuration de l'équilibreur de charge sur AWS Mgmt Console, j'obtiens le message d'erreur: "Le certificat de clé publique et la clé privée ne correspondent pas."

Voici comment je crée les clés:

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

Je soumets ensuite le fichier .csr à GoDaddy pendant le processus de "rekey". Une fois le renouvellement de clé terminé, je télécharge les 2 certificats nouvellement créés (apps.mydomain.com.crt & gd_bundle.crt). Je les télécharge en sélectionnant (Apache) comme type de serveur (j'ai aussi essayé "other" et "Cpanel" mais tous semblent être les mêmes).

À ce stade, je supprime le chiffrement du fichier private.key à l'aide de la commande suivante:

$ openssl rsa -in private.key -out private.pem

À ce stade, je retourne dans la console AWS Mgmt, crée l'équilibreur de charge, ajoute la redirection du serveur sécurisé et place le contenu des fichiers suivants dans les champs respectifs de l'écran où il demande de configurer le certificat ssl:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain

Lorsque je clique sur le bouton "Continuer", le message d'erreur "Erreur: le certificat de clé publique et la clé privée ne correspondent pas" s'affiche.

-Est-il possible de tester que je reçois un message d'erreur valide d'Amazon? Il me semble étrange que les touches ne correspondent pas lorsque je suis de près les instructions de GoDaddy.

J'ai essayé de créer le fichier private.key sans cryptage RSA avant de créer le .csr et cela ne semble pas faire de différence.

Je suppose également que les fichiers .crt que je télécharge à partir de GoDaddy sont au format .PEM, mais je ne sais pas comment vérifier cela.

Des idées?

Felby
la source
1
Stack Overflow est un site pour les questions de programmation et de développement. Cette question semble hors sujet car elle ne concerne ni la programmation ni le développement. Consultez la rubrique Quels sujets puis-je poser ici dans le centre d'aide. Peut-être que Super User serait un meilleur endroit pour demander. Voir également Où puis-je publier des questions sur Dev Ops? .
jww
Ce message a plus de 3 ans, pourquoi se donner la peine de le déplacer maintenant?
Felby
1
Felby - les gens disent souvent, "... mais voir ce post et ce post". Il ne suffit donc pas de garder les nouveaux messages en ordre - nous devons au moins recevoir un message sur les anciens messages aussi. Et pour ce que ça vaut, je ne pense pas que c'est une mauvaise question. C'est juste un peu hors sujet pour Stack Overflow.
jww
@Felby vous devriez considérer cette réponse pour l'acceptation. C'est celui que la plupart des développeurs recherchent lorsque ce problème survient avec AWS.
Noel Baron du

Réponses:

61

Pour moi, c'était une étape simple en deux étapes:

  1. Convertissez la clé privée en PEM:

    openssl rsa -in yourdomain.key -outform PEM

  2. Convertissez le certificat et le bundle de certificats en PEM :

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

Jonathon Hill
la source
1
Cette réponse particulière m'a vraiment aidé. Merci Jonathan. Pour mémoire, votredomaine.crt est la clé publique, le certificat que vous avez obtenu de votre fournisseur (il peut également s'agir d'un .cer)
user_v
je reçois toujours une erreurWARNING: can't open config file: /etc/pki/tls/openssl.cnf
tq
2
@tq - certaines commandes OpenSSL prennent également une -configoption. Utilisez-le pour spécifier le chemin d'accès au fichier de configuration que vous utilisez.
jww
@felby Doit marquer celle-ci comme réponse acceptée. C'est la seule réponse qui ne crée pas de problème de confiance SSL avec les appareils iOS.
Noel Baron du
Cette réponse est vraiment utile avec SSL générique. Vous devez convertir les fichiers domain.crt et gd_bundle.crt.
Ducle
40

Juste pour mémoire et pour toute autre personne qui essaie de le comprendre:

votredomaine.key -> commande du terminal: sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem -> clé privée

votredomaine.crt -> clé publique

gd_bundle.crt -> chaîne de certificats

et vous êtes prêt à partir :)

Chris J
la source
2
OMG, j'ai perdu tellement d'heures avec un problème, tu viens de me sauver! J'ai acheté un certificat RapidSSL: l'astuce consistait à 1) convertir la clé privée comme vous le suggérez ici et 2) inverser l'ordre des certificats dans la chaîne de certificats fournie par RapidSSL. Merci!
MiniQuark
n'arrête pas de me demander un mot de passe mais mon certificat rapidssl a été créé sans un
tq
La commande sudo demandera un mot de passe administrateur, sauf si votre compte est configuré pour ne pas exiger de mot de passe via plusieurs méthodes différentes. Est-ce aussi le mot de passe dont vous parlez?
Chris J
Pour ajouter quelque chose où il peut être trouvé par quelqu'un qui en a besoin, nous avons obtenu un certificat Host Gator d'un client, et cela semblait assez bien configuré - pas de conversions pem, et le bundle CA était déjà concaténé. Cependant, n'irait pas dans Amazon. C'était la même chose avec l'ordre des certificats dans le paquet. En inversant l'ordre, il est entré et a fonctionné.
CargoMeister
23

On dirait que le problème était la façon dont je copiais le contenu de la clé et des certificats dans la console AWS Management. J'utilisais un bureau Ubuntu fonctionnant dans Virtual Box sur un bureau Windows 7; copiez et collez les valeurs d'un écran gedit dans le navigateur s'exécutant sur la boîte Windows. Une fois que j'ai ouvert les fichiers de clé et de certificat sur la même boîte que le navigateur Web (Windows dans ce cas), les certificats se sont bien déroulés. J'imagine que certaines parties du fichier ne le font pas correctement lors de l'utilisation du presse-papiers partagé entre le client et l'hôte de Virtual Box. Affaire classée.

Felby
la source
Pouvez-vous accepter votre réponse pour que les gens sachent qu'elle a été résolue?
Phil Sturgeon
2
Bizarre, je pensais avoir déjà accepté ça il y a longtemps ...
Felby
7

Nous avons trouvé une solution alternative à ce problème. Nous avions les mêmes symptômes avec la même erreur.

Ensuite, nous avons essayé de saisir à nouveau les codes pem, mais cette fois, nous nous sommes assurés d'appuyer une fois sur Entrée et de nous assurer que le curseur était sur une ligne vide à la fin de chaque fenêtre. Ensuite, nous l'avons sauvé. ÇA A MARCHÉ.

Cela a résolu notre problème, donc cela pourrait le résoudre pour d'autres.

PlateSpinner
la source
1

Un petit gotcha. J'utilise une boîte Windows (Win 7 Pro) et lorsque j'ai utilisé le port Windows d'OpenSSL, les fichiers produits avaient des caractères de fin de ligne de style Unix (LF).

J'ai dû convertir le fichier en style Windows (CRLF) pour le téléchargement de la clé privée.

Christopher Stevenson
la source
0

Je peux vous proposer une solution alternative et une information à vous les gens. En général, tous les certificats sont au format de fichier PEM. Vous pouvez simplement ouvrir un bloc-notes ou n'importe quel éditeur de texte et faire glisser les fichiers que vous avez reçus au format de fichier .crt. Ce qui est normalement appelé fichier .PEM.Si le certificat est chargé dans votre keytool, vous pouvez exporter le certificat en tant que fichier pfx depuis keytool. Ensuite, vous pouvez séparer le fichier pfx de la clé privée du fichier pfx. Parce que le fichier pfx est la combinaison de votre certificat et de la clé privée, vous pouvez donc obtenir séparément le fichier de clé privée et l'utiliser sur votre Amazon AWS.

Je soupçonne qu'il existe un autre moyen d'installer le certificat. Vous pouvez peut-être contacter l'autorité de certification et y a-t-il un moyen de faire réémettre votre certificat?

Rajan
la source