J’ai donc reçu un nouveau certificate public à installer sur un serveur (fichier .crt). Terminé. Redémarrez Apache – “FAILED”.
Message d’erreur:
[Tue Jan 11 12:51:37 2011] [error] Unable to configure RSA server private key [Tue Jan 11 12:51:37 2011] [error] SSL Library Error: 185073780 error:0B080074: x509 certificatee routines:X509_check_private_key:key values mismatch
J’ai vérifié les valeurs clés:
openssl rsa -noout -modulus -in server.key | openssl md5 openssl x509 -noout -modulus -in server.crt | openssl md5
et ils correspondent.
J’ai vérifié les chemins dans mon fichier ssl.conf et ils dirigent vers les bons fichiers.
Si je réinstalle l’ancien fichier cert (expiré), apache démarre correctement, donc il n’aime certainement pas le nouveau.
C’est un QuickSSL GeoTrust, et il est venu avec un “intermédiaire.crt” que je suis supposé utiliser à la place du fichier “ca-bundle.crt” que j’utilisais avant
SSLCertificateFile /etc/pki/tls/certs/www.domain.com.crt SSLCertificateKeyFile /etc/pki/tls/private/www.domain.com.key SSLCACertificateFile /etc/pki/tls/certs/intermediate.crt
Des idées que je fais peut-être mal? Plus d’infos dont vous avez besoin?
Merci!
J’ai également rencontré la même erreur. Dans mon cas, j’ai dû fournir des certificates CA supplémentaires dans la chaîne de vérification. Et au lieu de fournir le certificate et la clé dans des fichiers séparés, je les ai combinés dans un fichier .pem.
Toutefois, lorsque vous faites cela, l’ordre de la clé et du certificate, plus le ou les intermédiaires, est important. Le bon ordre:
your private key your certificatee (intermediate) CA certificatee lowest in the hierarchy other CA certificatees higher in the hierarchy... (intermediate) CA certificatee highest in the hierarchy
Lors de la réémission de mon certificate Rapid Rapid (acheté via Namecheap) pour traiter le bogue Heartbeat, le nouveau certificate était toujours émis contre la clé privée utilisée pour la demande CSR précédente. Après environ la cinquième réédition, le couplage avec la clé privée utilisée lors de la quasortingème tentative de réémission a bien fonctionné.
Pour tous ceux qui ont du mal avec ça …
J’ai eu le même problème récemment sur l’un de mes serveurs CentOS 6.5 et c’était le moment où j’ai généré la clé et la RSE.
J’ai trois sites en cours d’exécution sur ce serveur dans virtualhosts, tous avec des adresses IP dédiées et chaque site possède son propre certificate SSL.
En changeant rapidement l’un des certificates, j’ai simplement suivi le guide des fournisseurs de certificates pour obtenir le CSR et l’installer dans Apache, et j’ai reçu l’ordre d’utiliser la commande suivante:
openssl req -new -newkey rsa:2048 -nodes -keyout domain-name-here.key -out domain-name-here.csr
Après avoir installé le nouveau certificate, je me trouvais également face à Apache qui ne démarrait pas et aux mêmes erreurs dans /var/log/httpd/ssl_error_log
:
[error] SSL Library Error: 185073780 error:0B080074:x509 certificatee routines:X509_check_private_key:key values mismatch [error] Unable to configure RSA server private key
Maintenant, ce que j’aurais dû faire était de vérifier mes fichiers .bash_history
, car je l’ai déjà fait plusieurs fois dans CentOS.
J’aurais dû exécuter ces deux commandes à la place:
openssl genrsa -des3 -out domain-name-here.co.uk.key 2048 openssl req -new -key domain-name-here.co.uk.key -out domain-name-here.co.uk.csr
Ceci a ensuite généré avec succès le CSR et le KEY, j’ai réappliqué pour le certificate en utilisant le nouveau CSR, puis appliqué le nouveau certificate et ajouté le nouveau fichier de clé et finalement Apache commencerait proprement.
Aussi, juste après une petite configuration, nous notons maintenant A + dans un test de laboratoire SSL.
assurez-vous que tous les fichiers cert sont encodés en utilisant ANSI
, pas UTF-8
.
Pour moi, tous les tests ont dit: key, crt et csr correspondent, mais les journaux ont dit X509_check_private_key:key values mismatch
jusqu’à ce que je voie qu’un des fichiers était encodé en UTF-8
.
Dans mon cas, j’avais deux sites et deux clés privées différentes:
nginx: [emerg] SSL_CTX_use_PrivateKey_file("/some/path/server.key") failed (SSL: error:0B080074:x509 certificatee routines:X509_check_private_key:key values mismatch)
Après avoir corrigé cela, le message d’erreur a changé pour mentionner /some/path/server.pem
. Notez la clé privée différente, qui ne différait que par l’extension du fichier. J’ai eu deux sites différents cryptés avec des clés différentes (ce qui signifie que j’avais corrigé le premier site mais que je devais maintenant réparer le deuxième site). Veillez donc à lire attentivement le message d’erreur!
Nous avons également eu le problème avec NameCheap, le Cert émis correspondait à la CSR utilisée pour générer le CERT précédent. Nous leur avons fait savoir via leur page de support, et ils ont dit qu’ils étaient déjà au courant du problème.
Dynadot semble avoir les mêmes problèmes avec les certificates RapidSSL qu’ils réémettent. Je viens de recevoir un certificate non fonctionnel, qui a ensuite déclenché un autre problème avec Apache, lorsque cela a été corrigé, j’ai trouvé cette question et réponse ici pour le problème initial, merci pour l’information tout le monde. Je vais supprimer le certificate RapidSSL car j’ai des problèmes de compatibilité avec le client et en achète un nouveau à AlphaSSL.
Selon la FAQ sur le site Web d’Apache, le module et l’exposant public du certificate et de la clé doivent correspondre, ce qui constitue un contrôle valide.
http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#verify
Comme vous et d’autres avez déjà indiqué, travaillez avec l’émetteur de certificates
Le plus délicat dans mon cas est la configuration du SSLCACertificateFile
. Une fois que le certificate a été délivré par notre société certifiée, nous avons reçu deux certificates supplémentaires: un certificate intermédiaire et un certificate racine. Lequel utiliser pour SSLCACertificateFile
? Tous les deux..
Voici à quoi ressemble ma chaîne de certificates:
Et pour le SSLCACertificateFile
je dois concaténer digicert_sha2_high_assurance_server_ca.crt et digicert.crt dans un fichier dans l’ordre mentionné.