web-dev-qa-db-fra.com

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

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 à l'aide du programme keytool pour une installation directe sur un serveur Glassfish 3.1 (Amazon linux AMI). 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 a besoin que la clé privée et les certificats soient au format PEM. J'ai donc utilisé l'outil "rekey" de GoDaddy pour créer de nouveaux certificats. Lorsque je charge ceux qui se trouvent dans l'écran de configuration de l'équilibreur de charge sur AWS Mgmt Console, le message d'erreur suivant s'affiche: "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 au cours du processus "rekey". Une fois que la clé est terminée, je télécharge les 2 nouveaux certificats créés (apps.mydomain.com.crt & Gd_bundle.crt). Je les télécharge en sélectionnant (Apache) le type de serveur (j'ai aussi essayé "autre" et "Cpanel" mais le tout a l'air d'être le même).

À 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 à la console AWS Mgmt, crée l'équilibreur de charge, ajoute la redirection de serveur sécurisé et place le contenu des fichiers suivants dans les champs respectifs de l'écran où il vous est demandé 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", l'erreur "Erreur: certificat de clé publique et clé privée ne correspond pas".

-Y a-t-il un moyen de vérifier que je reçois un message d'erreur valide d'Amazon? Il me semble étrange que les touches ne correspondent pas lorsque je suis les instructions de GoDaddy de très près.

J'ai essayé de créer le fichier private.key sans chiffrement RSA avant de créer le fichier .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 le vérifier.

Des idées?

84
Felby

Il semble que le problème réside dans la façon dont j'ai copié le contenu de la clé et des certificats dans la console de gestion AWS. J'utilisais un bureau Ubuntu fonctionnant dans Virtual Box sur un bureau Windows 7; copier et coller les valeurs depuis un écran gedit dans le navigateur fonctionnant sous Windows. Une fois que j'ai ouvert les fichiers de clé et de certification sur la même boîte que le navigateur Web (Windows dans ce cas), les certificats ont parfaitement fonctionné. J'imagine que certaines parties du fichier ne sont pas correctement configurées lors de l'utilisation du presse-papiers partagé entre le client Virtual Box et l'hôte. Affaire classée.

23
Felby

Pour moi, ce fut un facile en deux étapes:

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

    openssl rsa -in yourdomain.key -outform PEM

  2. Convertir le certificat et l'ensemble de certificats en PEM :

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

61
Jonathon Hill

Pour mémoire et pour tous ceux qui essaient de comprendre:

yourdomain.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 :)

38
C Jones

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

Nous avons ensuite essayé de ré-entrer les codes PEM une fois de plus, mais cette fois-ci, nous nous sommes assurés d’appuyer sur Entrée une fois et de nous assurer que le curseur était sur une ligne vierge à la fin de chaque fenêtre. Ensuite, nous l'avons enregistré.

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

7
PlateSpinner

Un petit casse-tête. J'utilise un ordinateur Windows (Win 7 Pro) et lorsque j'utilisais le port Windows d'OpenSSL, les fichiers de sortie contenaient des caractères de fin de ligne (LF) de style Unix. 

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

1

Je peux vous suggérer une solution de remplacement et une information à votre clientèle . En général, tous les certificats sont au format de fichier PEM. Vous pouvez simplement ouvrir un bloc-notes ou un éditeur de texte et faire glisser les fichiers que vous avez reçus au format .crt. Ce fichier s'appelle normalement fichier .PEM. Si le certificat est chargé dans votre keytool, vous pouvez l'exporter sous forme de fichier pfx à partir de 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 peut y avoir un autre moyen d'installer le certificat. Peut-être pouvez-vous contacter l’autorité de certification et existe-t-il un moyen de faire réémettre votre certificat?.

0
Rajan