Voici l'erreur que j'obtiens:
Rechargement de la configuration de nginx: nginx: [Emerg] SSL_CTX_use_certificate_chain_file ("/ path / to / cert.pem") a échoué (SSL: erreur: 02001002: bibliothèque système: fopen: aucune erreur de fichier ou de répertoire: 20074002: routines BIO: FILE_CTRL: système erreur lib: 140DC002: routines SSL: SSL_CTX_use_certificate_chain_file: système lib) nginx: fichier de configuration /etc/nginx/nginx.conf échec du test
Je suis sûr à 100% que le fichier est à cet endroit mais Nginx semble penser qu'il n'est pas là. J'ai fusionné le domain.crt
et intermediate.crt
manuellement dans cet ordre. Je me suis gratté la tête toute la journée. J'espère que quelqu'un a vu cette erreur et a une solution. (Et une note latérale ce n'est pas une erreur en collant que l'emplacement du fichier ne s'affiche qu'une fois et non après `` aucun fichier ou répertoire '').
la source
path/to/cert.pem
n'est certainement pas un emplacement valide.Réponses:
Êtes-vous sûr que l'utilisateur Nginx a accès au répertoire?
Vérifiez également les autorisations du
.pem
fichier, si Nginx ne peut pas y accéder, il peut s'afficher en tant que'no such file or directory'
.Si les autorisations sont correctes, vous pouvez vérifier à nouveau le chemin réel. Comment vous l'avez collé (dont je sais que vous avez supprimé le dir), il n'y a pas de début
/
qui pourrait être le problème.ÉDITER
Essayez de déplacer votre configuration SSL dans la structure suivante (ainsi que de modifier la
nginx.conf
pour refléter):Nginx peut échouer sur votre
.pem
car les autorisations sont trop ouvertes (besoin d'une source pour vérifier que Nginx le fait) mais la configuration ci-dessus devrait fonctionner correctement.la source
/
au début, j'ai donc changé la question pour refléter cela. Le fichier se trouve dans/home/user/subdirs
et toutes les autorisations de fichier et de répertoire qu'il contient appartiennent à user.www-data (nom d'utilisateur.nom de groupe) et 775 set. Et je pense que nginx a accès à tout ce qui appartient à www-data, bien que je puisse me tromper.$root/keys/
donc ma ligne de cert ressemble àssl_certificate keys/cert.pem
... doit-elle être dans le webroot?chmod -R 600 /etc/nginx/ssl
de mon point d'entrée résout le problème grâceJe laisserai ma réponse à mon problème, au cas où quelqu'un tomberait sur ce sujet.
J'ai exécuté nginx à l'intérieur du conteneur Docker et j'ai la même erreur en essayant d'accéder au fichier de clé privée. Après m'être gratté la tête pendant plusieurs heures, je me rends compte que le nginx de mon docker n'a pas le volume de montage qui contient mes données.
La seule option pour ajouter un volume de montage est de supprimer et de recréer le conteneur avec l'
-v
option: https://docs.docker.com/engine/tutorials/dockervolumes/Parfois, des choses triviales sont difficiles à voir. J'espère que cette aide.
la source
Un scénario possible:
il peut parfois arriver que lors de la configuration des fichiers SSL (clé privée et certificat) pour le Virtualhost en cours de configuration, il ait été oublié de spécifier le chemin absolu où ces fichiers résident.
Par exemple, si vous suivez ce document officiel de Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
Supposons que vous stockiez les fichiers SSL dans " /etc/nginx/conf.d ":
Ce qui se produit?
Par défaut, lorsqu'il n'est pas spécifié le chemin absolu d'un fichier ordinaire utilisé par Nginx, Nginx recherchera les fichiers dans "/ etc / nginx"
Depuis /var/log/nginx/error.log
Que faut-il faire?
Pour spécifier le chemin absolu des fichiers supplémentaires utilisés par votre configuration Virtualhost.
Comme ça:
la source
J'ai eu le même problème. J'ai dû changer les fichiers / etc / nginx / sites-enabled / default & default.save qui ont été ajoutés automatiquement mon nom de site sans le .com après pendant le processus d'installation, QUEL ÉTAIT LE PROBLÈME DANS MON INSTANCE . Pour faire court, ces deux lignes devaient être modifiées dans mon / etc / nginx / sites-enabled / default. Veuillez noter que ce fichier est affiché avec une icône de raccourci dans mon système de fichiers mais j'ai pu faire un clic droit sur le fichier et le modifier avec l'option "Éditer / Éditeur interne".
HTTPS - requêtes proxy sur Node.js local ap # HTTPS - requêtes proxy sur Node.js local application: serveur {écouter 443; nom_serveur switchmagic.com;
Lorsque j'ai parcouru les fichiers et ajouté le .com, qui est la convention de dénomination que j'ai utilisée pour ajouter le fichier, aux références switchmagic dans les répertoires de fichiers qui lançaient les erreurs, tout allait bien! J'ai trouvé beaucoup de développeurs poser la même question, donc je voulais lancer ma solution pour aider car les réponses que j'ai trouvées concernaient principalement les autorisations root, mais les autorisations root n'étaient pas le problème dans mon cas. Rock on Devs.
la source