SSL: erreur:0B080074:certificat x509 routines:X509_check_private_key:valeurs de clé d'incompatibilité
Je ne suis pas en mesure de configuration de SSL. J'ai Googlé et j'ai trouvé quelques solutions, mais aucune n'a fonctionné pour moi. J'ai besoin d'aide s'il vous plaît...
Voici l'erreur que j'obtiens lorsque je tente de redémarrer nginx:
root@s17925268:~# service nginx restart
Restarting nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/ssl/ssl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed
Mon certificat de StartSSL et est valable 1 an.
Voici ce que j'ai testé:
- Le certificat et la clé privée n'a pas d'espaces.
- Je ne suis pas en utilisant le serveur par défaut.fichier de clé.
- J'ai vérifié la nginx.conf et le
les directives sont de montrer la bonne clé privée et le certificat.
J'ai aussi vérifié le module, et je reçois un autre module pour les deux clés et des certificats.
Merci pour votre aide. 🙂
Vous devez vous connecter pour publier un commentaire.
Cela dit tout. Vous avez un décalage entre vos clés et des certificats.
Le module doit correspondre. Assurez-vous que vous avez la bonne clé.
Une fois que vous avez établi qu'ils ne correspondent pas, vous avez encore un problème: que faire à ce sujet. Souvent, le certificat peut être simplement assemblés de manière incorrecte. Lorsqu'une autorité de certification signe le certificat, ils vous envoient un bloc qui ressemble à quelque chose comme
ils vont aussi vous envoyer un bundle (souvent deux certificats) qui représentent leur pouvoir de vous accorder un certificat. cela va ressembler à quelque chose comme
sauf que malheureusement, ils ne sont pas si clairement étiquetés.
une pratique courante, alors, est de regrouper toutes ces fonctions dans un fichier-votre certificat, puis la signature des certificats. Mais puisqu'ils ne sont pas facile à distinguer, il arrive parfois que quelqu'un accidentellement les met dans l'ordre -- la signature de certificats, puis la finale cert -- sans s'en apercevoir. Dans ce cas, votre cert ne correspond pas à votre clé.
Vous pouvez tester pour voir ce que le cert pense qu'il représente en exécutant
Vers le haut, vous devriez voir "Sujet:" et puis des trucs qui ressemble à vos données. Si, au contraire, il lookslike votre CA, votre bundle est probablement dans le mauvais ordre; vous pouvez essayer de faire une sauvegarde, puis en déplaçant le dernier cert pour le début, en espérant qu'est celui qui est votre cert.
Si cela ne fonctionne pas, vous pouvez juste obtenir le cert a publié de nouveau. Quand je fais de la RSE, j'aime à étiqueter clairement ce serveur c'est pour (au lieu de simplement ssl.clé ou d'un serveur.la clé) et faites-en une copie avec la date dans le nom, comme mydomain.20150306.clé etc. de cette façon, qu'ils soient privés paires de clés publique et sont peu susceptibles de se confondre avec un autre jeu.
Vérifier le MD5 hash de la clé publique pour s'assurer qu'elle correspond à ce qui est dans une clé privée
openssl x509 -noout -module -dans le certificat.crt | openssl md5
openssl rsa -noout -module -dans privateKey.clé | openssl md5
J'ai eu ce problème parce que j'étais en ajoutant bundle et le certificat en bon ordre, alors peut-être que cela pourrait aider quelqu'un d'autre.
Avant (ce qui est faux) :
cat ca_bundle.crt certificate.crt > bundle_chained.crt
Après (qui est juste)
cat certificate.crt ca_bundle.crt > bundle_chained.crt
Et s'il vous Plaît n'oubliez pas de mise à jour approprié conf (ssl_certificate doit maintenant pointer vers la enchaînés crt) comme
De la nginx page de manuel:
Si cela se produit et que vous utilisez Let's Encrypt /certbot, la raison en est probablement que vous avez utilisé
chain.pem
au lieu defullchain.pem
.Il devrait être quelque chose comme ceci:
Voir certbot docs “Où sont mes certificats?”
J'ai eu le même problème et résolu en changeant l'ordre des pem blocs dans le fichier de certificat.
Le cert bloc doit être mis dans le début du fichier, puis intermédiaire de blocs, puis le bloc de la racine.
J'ai réalisé ce problème en comparant un problème de fichier de certificat avec un certificat de travail fichier.
Dans mon cas, j'ai voulu changer le certificat ssl, parce que j'ai e a changé mon serveur, j'ai donc dû créer un nouveau rse avec cette commande:
$openssl req-new -newkey rsa:2048 -nœuds -keyout monsite.key-out monsite.la rse
J'ai envoyé monsite.fichier csr à la société fournisseur de certificats ssl, et après je l'ai reçu le certificat crt et puis j'ai redémarré nginx , et j'ai eu cette erreur
(SSL: erreur:0B080074:certificat x509 routines:X509_check_private_key:les principales valeurs de décalage)
Après beaucoup de recherches, l'erreur a été que le module du fichier de clés n'a pas été la même avec l'un de crt fichier
Afin de le faire fonctionner, j'ai créé un nouveau fichier csr mais j'ai changer le nom du fichier avec cette commande
$openssl req-new -newkey rsa:2048 -nœuds -keyout mysite_new.key-out mysite_new.la rse
Puis j'ai reçu un nouveau fichier crt auprès de la société prestataire, le redémarrage de nginx et cela a fonctionné.
Mes 5 cents sur la question:
J'ai eu le même problème. Après environ 1 heure de s'occuper de ça, j'ai trouvé, j'ai collé le certificat de manière incorrecte.
Si vous avez d'erreur de ce genre, veuillez vérifier votre certificat.
Cela peut également se produire lorsque vos problèmes autorité de certification intermédiaire cert
Je suis tombé sur cette question (deux fois) avec nginx et aucune des solutions dans ce post, a expliqué le problème. Le billet de blog ici par un gentil monsieur du nom de Marco cloué, et je suis coller ici pour n'importe qui qui fonctionne aussi dans ce que je voyais. https://medium.com/@mrkdsgn/steps-to-install-a-go-daddy-ssl-certificate-on-nginx-on-ubuntu-14-04-ff942b9fd7ff
Dans mon cas, allez-papa a été le CA et c'est spécifique à la façon dont ils émettent les cert et l'intermédiaire cert bottes.
Voici l'extrait de Marco blog de
Avec Nginx, si votre CA inclus un certificat intermédiaire, vous devez créer un seul enchaîné certificat de fichier qui contient votre certificat et de l'AC les certificats intermédiaires.
Vous pouvez utiliser cette commande pour créer un fichier combiné appelé exemple.com.enchaînés.crt:
cat example.com.crt intermediate.crt > example.com.chained.crt
Pour Nginx;
1 - openssl req -newkey rsa:2048 -nœuds -keyout domaine.com.la clé de sortie de domaine.com.la rse
2 - SSL fichier domain_com.crt et domain_com.ca-bundle fichiers copier le fichier dans de la pâte de domaine.com.enchaînés.crt
3 - Ajouter nginx fichiers:
un. ssl_certificate /home/utilisateur/domain_ssl/domaine.com.enchaînés.crt;
b. ssl_certificate_key /home/utilisateur/domain_ssl/domaine.com.clé;
Lates redémarrer Nginx
Im mon cas, le problème était que je cretead sertificates sans entrer toutes les données dans l'interface cli. Quand j'ai régénéré cretificates et enetered tous les domaines: la Ville, l'État, etc, tout est devenu bien.
Il m'est arrivé lorsque j'ai combiné le bundle.le crt et les principaux cert. La raison en était, j'ai copié le principal cert ci-dessous l'ensemble.crt. Il devrait être dans l'autre sens
1/principales cert
2/bundle.crt