Aquí está el error que recibo:
Error al recargar la configuración de nginx: nginx: [emerg] SSL_CTX_use_certificate_chain_file ("/ path / to / cert.pem") falló (SSL: error: 02001002: biblioteca del sistema: fopen: No existe dicho archivo o error de directorio: 20074002: BIO rutinas: FILE_CTRL: sistema error de lib: 140DC002: rutinas SSL: SSL_CTX_use_certificate_chain_file: system lib) nginx: archivo de configuración /etc/nginx/nginx.conf falló la prueba
Estoy 100% seguro de que el archivo está en esa ubicación, pero Nginx parece pensar que no está allí. Fusioné domain.crt
y intermediate.crt
manualmente en ese orden. He estado rascándome la cabeza sobre esto todo el día. Espero que alguien haya visto este error y tenga una solución. (Y una nota al margen no es un error al pegar que la ubicación del archivo se muestra solo una vez y no otra vez después de 'no existe tal archivo o directorio').
fuente
path/to/cert.pem
Ciertamente no es una ubicación válida.Respuestas:
¿Está seguro de que el usuario de Nginx tiene acceso al directorio?
También verifique los permisos del
.pem
archivo, si Nginx no puede acceder a él, puede mostrar como'no such file or directory'
.Si los permisos son correctos, puede verificar la ruta real nuevamente. Cómo lo pegaste (que sé que eliminaste el directorio) no hay un comienzo
/
que podría ser el problema.EDITAR
Intente mover su configuración SSL a la siguiente estructura (así como cambiar la
nginx.conf
para reflejar):Nginx podría estar fallando
.pem
debido a que los permisos son demasiado abiertos (necesita fuente para verificar que Nginx hace esto) pero la configuración anterior debería funcionar bien.fuente
/
al principio, así que cambié la pregunta para reflejar eso. El archivo se encuentra en/home/user/subdirs
y todos los permisos de archivo y directorio dentro de allí son propiedad de user.www-data (username.group name) y 775 set. Y creo que nginx tiene acceso a todo lo que pertenece a www-data, aunque podría estar equivocado.$root/keys/
así que mi línea de certificación parecessl_certificate keys/cert.pem
... ¿tienen que estar en la raíz web?chmod -R 600 /etc/nginx/ssl
en mi punto de entrada resolver el problema graciasDejaré mi respuesta para mi problema, en caso de que alguien se encuentre con este tema.
Tengo nginx ejecutado dentro del contenedor docker, y tengo el mismo error al intentar acceder al archivo de clave privada. Después de rascarme la cabeza durante varias horas, me doy cuenta de que el nginx de mi docker no tiene el volumen de montaje que contiene mis datos.
La única opción para agregar volumen de montaje es eliminar y volver a crear el contenedor con la
-v
opción: https://docs.docker.com/engine/tutorials/dockervolumes/A veces, las cosas triviales son difíciles de ver. Espero que esto ayude.
fuente
Un posible escenario:
a veces puede suceder que, al configurar archivos SSL (clave privada y certificado) para el Virtualhost que se está configurando, se olvidó de especificar la ruta absoluta donde residen estos archivos.
Por ejemplo, si sigue este documento oficial de Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
Suponga que almacena los archivos SSL dentro de " /etc/nginx/conf.d ":
¿Lo que pasa?
Por defecto, cuando no se especifica la ruta absoluta para un archivo ordinario que utiliza Nginx, Nginx buscará los archivos en "/ etc / nginx"
Desde /var/log/nginx/error.log
¿Qué hay que hacer?
Para especificar la ruta absoluta de los archivos adicionales que utiliza su configuración de Virtualhost.
Me gusta esto:
fuente
Tuve el mismo problema. Tuve que cambiar los archivos / etc / nginx / sites-enabled / default & default.save que se agregaron automáticamente al nombre de mi sitio sin el .com después del mismo durante el proceso de configuración, QUE FUE EL PROBLEMA EN MI INSTANCIA . Para mantenerlo breve, estas dos líneas debían cambiarse en mi / etc / nginx / sites-enabled / default. Tenga en cuenta que este archivo se muestra con un icono de acceso directo en mi sistema de archivos, pero pude hacer clic derecho en el archivo y editarlo con la opción "Editar / Editor interno".
HTTPS: solicitudes de proxy en Node.js local ap # HTTPS: solicitudes de proxy en la aplicación Node.js local: servidor {listen 443; nombre_servidor switchmagic.com;
Cuando revisé los archivos y agregué .com, que es la convención de nomenclatura que usé para agregar el archivo, a las referencias de switchmagic en los directorios de archivos que arrojaban los errores, ¡ todo estaba bien! Encontré a muchos desarrolladores haciendo la misma pregunta, así que quería lanzar mi solución para ayudar, ya que las respuestas que encontré eran principalmente sobre permisos de root, pero los permisos de root no eran el problema en mi caso. Rock on Devs.
fuente