Las claves privadas deberían tener una lectura muy restringida. Establecer permisos para 600
y propiedad de root
Deberia trabajar. Sin embargo, hay otras configuraciones de permisos seguras:Ubuntu almacena las claves en un directorio con el propietario root
y grupo ssl-cert
y permisos 710
. Esto significa que solo los miembros de ssl-cert
puede acceder a cualquier archivo en ese directorio. Las claves privadas luego tienen grupo ssl-cert
, propietario root
y permisos 640
.
Tuve un problema al configurar nginx y me encontré con esta pregunta. La otra respuesta aquí ya respondió directamente a la pregunta, pero pensé que un poco más de información sería útil.
Normalmente, nginx se inicia como root
usuario por init scripts / systemd. Sin embargo, nginx también tiene la capacidad de cambiar a un usuario con menos privilegios para las operaciones normales. Entonces, mi pregunta era ¿qué usuario se usa para cargar el certificado/clave SSL? ¿El usuario privilegiado inicial o al que se cambia?
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 aún se ejecuta como root
.
El problema con el que me encontré y que me trajo aquí fue que estaba definiendo ssl_certificate
solo en mi server
bloques en nginx.conf
. Recibía errores como [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
cuando supe muy bien que mis llaves estaban en el lugar correcto. Ese problema fue que no tenía un ssl_certificate
en el http
nivel de nginx.conf
.
Espero que esto sea útil para alguien.