Autorizzazioni per chiave SSL?


15

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:


15

Le chiavi private dovrebbero avere una lettura fortemente limitata. L'impostazione delle autorizzazioni 600e della proprietà rootdovrebbe funzionare. Tuttavia, ci sono altre impostazioni di autorizzazioni sicure: Ubuntu memorizza le chiavi in ​​una directory con proprietario, rootgruppo ssl-certe autorizzazioni 710. Ciò significa che solo i membri di ssl-certpossono accedere a qualsiasi file in quella directory. Le chiavi private hanno quindi gruppo ssl-cert, proprietario roote autorizzazioni 640.


2
Aggiungerò, per specificità: quando si utilizza nginx su CentOS 7, non è necessario rendere leggibili né il certificato né la chiave privata da quelli del nginxgruppo. Il server web sarà in grado di usarli anche se sono leggibili solo da root(come dovrebbero essere).

3

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 rootutente 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_certificatesolo nei miei serverblocchi nginx.conf. Stavo ricevendo errori come [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshakingquando sapevo dannatamente bene e bene che le mie chiavi erano nel posto giusto. Il problema era che non avevo un livello ssl_certificatea httplivello di nginx.conf.

Spero che questo sia utile per qualcuno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.