Sto cercando di impostare una connessione protetta (https) in nginx.
Ma sono un po 'preoccupato per le autorizzazioni della chiave privata, che non sono menzionate in nessun tutorial.
Devo cambiarli? A cosa?
Sto cercando di impostare una connessione protetta (https) in nginx.
Ma sono un po 'preoccupato per le autorizzazioni della chiave privata, che non sono menzionate in nessun tutorial.
Devo cambiarli? A cosa?
Risposte:
Le chiavi private dovrebbero avere una lettura fortemente limitata. L'impostazione delle autorizzazioni 600
e della proprietà root
dovrebbe funzionare. Tuttavia, ci sono altre impostazioni di autorizzazioni sicure: Ubuntu memorizza le chiavi in una directory con proprietario, root
gruppo ssl-cert
e autorizzazioni 710
. Ciò significa che solo i membri di ssl-cert
possono accedere a qualsiasi file in quella directory. Le chiavi private hanno quindi gruppo ssl-cert
, proprietario root
e autorizzazioni 640
.
Ho riscontrato un problema durante l'installazione di nginx e ho riscontrato questa domanda. L'altra risposta qui ha già risposto direttamente alla domanda, ma ho pensato che un po 'più di informazioni sarebbero state utili.
Normalmente, nginx viene avviato come root
utente da init script / systemd. Tuttavia, nginx ha anche la possibilità di passare a un utente meno privilegiato per le normali operazioni. Quindi la mia domanda era quale utente è stato utilizzato per caricare il certificato / chiave ssl? L'utente privilegiato iniziale o quello a cui è passato?
Fortunatamente, nginx utilizza le autorizzazioni iniziali per leggere il certificato e la chiave in memoria prima di cambiare utente. Quindi, normalmente, puoi davvero lasciare le chiavi con autorizzazioni molto limitate in quanto vengono caricate da nginx quando è ancora in esecuzione come root
.
Il problema che stavo incontrando che mi ha fatto atterrare qui era che stavo definendo ssl_certificate
solo nei miei server
blocchi nginx.conf
. Stavo ricevendo errori come [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
quando sapevo dannatamente bene e bene che le mie chiavi erano nel posto giusto. Il problema era che non avevo un livello ssl_certificate
a http
livello di nginx.conf
.
Spero che questo sia utile per qualcuno.
nginx
gruppo. Il server web sarà in grado di usarli anche se sono leggibili solo daroot
(come dovrebbero essere).