Estoy tratando de configurar una conexión segura (https) en nginx.
Pero estoy un poco preocupado por los permisos de la clave privada, que no se mencionan en ningún tutorial.
¿Debo cambiarlos? ¿A qué?
Las claves privadas deberían tener una lectura muy restringida. Establecer permisos 600
y propiedad de root
debería funcionar. Sin embargo, hay otras configuraciones de permisos seguras: Ubuntu almacena las claves en un directorio con propietario root
y grupo ssl-cert
y permisos 710
. Esto significa que solo los miembros de ssl-cert
pueden acceder a cualquier archivo en ese directorio. Las claves privadas tienen grupo ssl-cert
, propietario root
y permisos 640
.
nginx
grupo. El servidor web podrá usarlos incluso si son legibles solo porroot
(como deberían ser).Tuve un problema al configurar nginx y me encontré con esta pregunta. La otra respuesta aquí ya ha respondido directamente a la pregunta, pero pensé que sería útil un poco más de información.
Normalmente, nginx se inicia como
root
usuario mediante init scripts / systemd. Sin embargo, nginx también tiene la capacidad de cambiar a un usuario menos privilegiado para las operaciones normales. Entonces, mi pregunta fue ¿qué usuario se utiliza para cargar el certificado / clave SSL? ¿El usuario privilegiado inicial o al que se cambió?Afortunadamente, nginx usa los permisos iniciales para leer el certificado y la clave en la memoria antes de cambiar de usuario. Entonces, normalmente, realmente puede dejar las claves con permisos muy restringidos, ya que nginx las carga cuando todavía se está ejecutando como
root
.El problema con el que me encontraba y que me hizo caer aquí fue que estaba definiendo
ssl_certificate
solo en misserver
bloquesnginx.conf
. Recibía errores como[error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
cuando sabía muy bien que mis llaves estaban en el lugar correcto. Ese problema era que yo no tenía unassl_certificate
en elhttp
nivel denginx.conf
.Espero que esto sea útil para alguien.
fuente