Je ne parviens pas à configurer SSL. J'ai cherché sur Google et trouvé quelques solutions, mais aucune n'a fonctionné pour moi. J'ai besoin d'aide s'il vous plait...
Voici l'erreur que j'obtiens lorsque j'essaye 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 est de StartSSL et est valable 1 an.
Voici ce que j'ai testé:
- Le certificat et la clé privée n'ont pas d'espaces de fin.
- Je n'utilise pas le fichier server.key par défaut.
- J'ai vérifié le nginx.conf et les directives pointent vers la clé privée et le certificat corrects.
J'ai également vérifié le module, et j'obtiens un module différent pour la clé et le certificat.
Merci de votre aide. :)
modulus' and the
parties de l'exposant public dans la clé et le certificat doivent correspondre. Nul doute que les fichiers sont différents. La clé est générée pour un certificat particulier.Une fois que vous avez établi qu'ils ne correspondent pas, vous avez toujours un problème - que faire. Souvent, le certificat peut simplement être assemblé de manière incorrecte. Lorsqu'une autorité de certification signe votre certificat, elle vous envoie un bloc qui ressemble à quelque chose comme
ils vous enverront également un ensemble (souvent deux certificats) représentant leur autorité pour vous accorder un certificat. cela ressemblera à quelque chose comme
sauf que malheureusement, ils ne seront pas aussi clairement étiquetés.
une pratique courante consiste donc à regrouper tous ces éléments dans un seul fichier - votre certificat, puis les certificats de signature. Mais comme ils ne sont pas faciles à distinguer, il arrive parfois que quelqu'un les place accidentellement dans l'autre ordre - signature des certificats, puis certificat final - sans s'en apercevoir. Dans ce cas, votre certificat ne correspondra pas à votre clé.
Vous pouvez tester pour voir ce que le certificat pense qu'il représente en exécutant
En haut, vous devriez voir "Objet:", puis des éléments qui ressemblent à vos données. Si à la place cela ressemble à votre CA, votre bundle est probablement dans le mauvais ordre; vous pouvez essayer de faire une sauvegarde, puis déplacer le dernier certificat au début, en espérant que ce soit celui qui est votre certificat.
Si cela ne fonctionne pas, vous devrez peut-être simplement réémettre le certificat. Lorsque je crée un CSR, j'aime identifier clairement à quel serveur il est destiné (au lieu de simplement ssl.key ou server.key) et en faire une copie avec la date dans le nom, comme mydomain.20150306.key etc. de cette façon il est peu probable que les paires de clés privées et publiques soient mélangées avec un autre ensemble.
la source
Vérifiez un hachage MD5 de la clé publique pour vous assurer qu'il correspond à ce qui se trouve dans une clé privée
la source
J'ai eu ce problème parce que j'ajoutais le paquet et le certificat dans le mauvais ordre, donc peut-être que cela pourrait aider quelqu'un d'autre.
Avant (ce qui est faux):
Après (ce qui est juste)
Et n'oubliez pas de mettre à jour la configuration appropriée (ssl_certificate doit maintenant pointer vers le crt chaîné) comme
Depuis la page de manuel nginx :
la source
Si cela se produit et que vous utilisez Let's Encrypt / certbot, la raison est probablement que vous avez utilisé à la
chain.pem
place defullchain.pem
.Cela devrait être quelque chose comme ceci:
Consultez la documentation certbot "Où sont mes certificats?"
la source
J'ai eu le même problème et je l'ai finalement résolu en modifiant l'ordre des blocs pem dans le fichier de certificat.
Le bloc cert doit être placé au début du fichier, puis les blocs intermédiaires, puis le bloc racine.
J'ai réalisé ce problème en comparant un fichier de certificat problématique avec un fichier de certificat fonctionnel.
la source
Mes 5 cents sur la question:
J'ai eu le même problème. Après environ 1 heure de travail, j'ai constaté que j'avais mal collé le certificat.
Si vous rencontrez une erreur comme celle-ci, veuillez vérifier votre certificat.
la source
Dans mon cas, j'ai voulu changer le certificat SSL, car j'ai changé de serveur et j'ai donc dû créer un nouveau CSR avec cette commande:
J'ai envoyé le fichier mysite.csr au fournisseur SSL de la société et après avoir reçu le certificat crt, puis j'ai redémarré nginx, et j'ai cette erreur
Après de nombreuses recherches, l'erreur était que le module du fichier de clé n'était pas le même que celui du fichier crt
Donc, pour le faire fonctionner, j'ai créé un nouveau fichier csr mais je dois changer le nom du fichier avec cette commande
Ensuite, j'avais reçu un nouveau fichier crt du fournisseur de la société, redémarrer nginx et cela a fonctionné.
la source
Cela peut également se produire lorsque votre autorité de certification émet un certificat intermédiaire
J'ai rencontré ce problème (deux fois) avec nginx et aucune des solutions de cet article n'a expliqué le problème. Le billet de blog ici par un gentil homme nommé Marco l'a cloué, et je le colle ici pour tous ceux qui rencontrent également 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, go-daddy était l'autorité de certification et cela est spécifique à la façon dont ils émettent le cert et les bundles de cert intermédiaires.
Voici l'extrait du billet de blog de Marco
Avec Nginx, si votre autorité de certification a inclus un certificat intermédiaire, vous devez créer un fichier de certificat chaîné unique contenant votre certificat et les certificats intermédiaires de l'autorité de certification.
Vous pouvez utiliser cette commande pour créer un fichier combiné appelé example.com.chained.crt:
cat example.com.crt intermediate.crt > example.com.chained.crt
la source
Im mon cas, le problème était que je cretead sertificates sans entrer de données dans l'interface cli. Quand j'ai régénéré des crétificats et parcouru tous les domaines: ville, état, etc., tout allait bien.
la source
Cela m'est arrivé lorsque j'ai combiné le bundle.crt et le cert principal. La raison en était que j'ai copié le certificat principal sous le bundle.crt. Il devrait être l'inverse
1 / certificat principal 2 / bundle.crt
la source
Pour Nginx:
openssl req -newkey rsa:2048 -nodes -keyout domain.com.key -out domain.com.csr
Fichier
domain_com.crt
etdomain_com.ca-bundle
fichiers SSL , puis copiez le nouveau fichier en pâtedomain.com.chained.crt
.3: Ajouter des fichiers nginx:
ssl_certificate /home/user/domain_ssl/domain.com.chained.crt;
ssl_certificate_key /home/user/domain_ssl/domain.com.key;
Lates redémarre Nginx.
la source
Cette erreur peut se produire lorsque la clé privée du certificat (
ssl_certificate_key
par exemple.key
ou.pem
fichier) ne correspond pas au fichier de certificat public (ssl_certificate
) dans votre configuration Nginx (archivernginx.conf
ou entrersites-enabled/
). Assurez-vous que les deux fichiers correspondent.Consultez les journaux d'erreurs Nginx pour plus de détails (par exemple
/var/log/nginx/error.log
).la source
Dans mon cas, je dois concaténer les certificats de mon domaine.
Et dans le fichier de configuration /etc/nginx/nginx.conf
Redémarrez le service et tout va bien.
Étape source 2: https://www.namecheap.com/support/knowledgebase/article.aspx/9781/2238/nginx-ssl-error0b080074x509-certificate-routines-x509checkprivatekeykey-values-mismatch
la source