Solution : Erreur SSL "X509_check_private_key:key values mismatch"

Lorsque vous générez une requête CSR, nécessaire pour acheter un certificat SSL, vous générez également une clé privée qui sert à l'installation du certificat SSL.
Cette clé privée est composée de deux parties : Les nombres de la "clé privée" et ceux de la "clé publique".

Les nombres de la "clé publique" sont intégrés à la requête CSR, puis au certificat SSL. C'est pour cette raison qu'un certificat SSL est inutilisable sans sa clé privée.


Quand comparer la clé privée avec le certificat SSL ?

Si votre application vous retourne l'un des messages d'erreur ci-dessous, la clé privée (private key) ne correspond pas au certificat SSL (x509 certificate) :


Apache 2 : certificate routines:X509_check_private_key:key values mismatch
Nginx :
SSL: error:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch

Lighttpd : Private key does not match the certificate public key (error: 0906dD64)
Citrix - NetScaller :
Certificate and private key do not match


Comment comparer la clé privée avec le certificat SSL ?

​Connectez vous sur votre serveur en SSH, et exécutez les commandes ci-dessous :

# Obtenir le modulus du certificat SSL
openssl x509 -noout -modulus -in www-votre-domaine-fr.cer | openssl md5

# Exemple de retour : (stdin)= 516e8ebfb434304b0d87453004f4493d


# Obtenir le modulus de la clé privée
openssl rsa -noout -modulus -in www-votre-domaine-fr.key | openssl md5

# Exemple de retour : (stdin)= ee3bacb2b7074d36796a43fe7a5e36b9


# Obtenir le modulus de la requête CSR
openssl req -noout -modulus -in www-votre-domaine-fr.csr | openssl md5

# Exemple de retour : (stdin)= 516e8ebfb434304b0d87453004f4493d 
Dans cet exemple, nous constatons que le modulus du certificat SSL correspond avec celui de la requête CSR mais pas avec celui de la clé privée.
Vous avez donc sélectionné la mauvaise clé privée (key values mismatch), qui rend le certificat x509 inutilisable. Le service refuse donc de démarrer.

En cas de perte de la clé privée, l'unique solution est de générer une nouvelle requête CSR / clé privé et de nous demander la ré-émission du certificat SSL (service gratuit).

Si le modulus de la clé privée correspond à celui de la requête CSR mais pas à celui du certificat SSL, contactez-nous afin que le certificat x509 vous soit ré-envoyé.