J'essaie de configurer une connexion sécurisée (https) dans nginx.
Mais je suis un peu inquiet au sujet des autorisations de la clé privée, qui ne sont mentionnées dans aucun didacticiel.
Dois-je les changer? À quoi?
Les clés privées devraient avoir une lecture fortement restreinte. La définition des autorisations sur 600
et détenues par root
devrait fonctionner. Cependant, il existe d'autres paramètres d'autorisations sécurisées - Ubuntu stocke les clés dans un répertoire avec le propriétaire root
, le groupe ssl-cert
et les autorisations 710
. Cela signifie que seuls les membres de ssl-cert
peuvent accéder aux fichiers de ce répertoire. Les clés privées ont alors le groupe ssl-cert
, le propriétaire root
et les autorisations 640
.
nginx
groupe. Le serveur Web pourra les utiliser même s'ils ne sont lisibles que parroot
(comme il se doit).J'ai eu un problème lors de la configuration de nginx et suis tombé sur cette question. L'autre réponse ici a déjà répondu directement à la question, mais j'ai pensé qu'un peu plus d'informations seraient utiles.
Normalement, nginx est démarré en tant
root
qu'utilisateur par init scripts / systemd. Cependant, nginx a également la possibilité de basculer vers un utilisateur moins privilégié pour les opérations normales. Donc, ma question était quel utilisateur est utilisé pour charger le certificat / clé SSL? L'utilisateur privilégié initial ou celui qui est basculé vers?Heureusement, nginx utilise les autorisations initiales pour lire le certificat et la clé en mémoire avant de changer d'utilisateur. Donc, normalement, vous pouvez vraiment laisser les clés avec des autorisations très limitées car elles sont chargées par nginx quand il fonctionne toujours en tant que
root
.Le problème que je rencontrais qui m'a atterri ici était que je ne définissais
ssl_certificate
que dans messerver
blocsnginx.conf
. Je recevais des erreurs comme[error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
quand je savais très bien que mes clés étaient au bon endroit. Ce problème était que je n'en avais passsl_certificate
auhttp
niveau denginx.conf
.J'espère que cela est utile pour quelqu'un.
la source