Ich versuche, eine sichere Verbindung (https) in Nginx einzurichten.
Aber ich mache mir ein bisschen Sorgen um die Berechtigungen des privaten Schlüssels, die in keinem Tutorial erwähnt werden.
Soll ich sie ändern? Zu was?
Ich versuche, eine sichere Verbindung (https) in Nginx einzurichten.
Aber ich mache mir ein bisschen Sorgen um die Berechtigungen des privaten Schlüssels, die in keinem Tutorial erwähnt werden.
Soll ich sie ändern? Zu was?
Antworten:
Bei privaten Schlüsseln sollte das Lesen stark eingeschränkt sein. Das Festlegen von Berechtigungen für 600
und im Besitz von root
sollte funktionieren. Es gibt jedoch andere Einstellungen für sichere Berechtigungen - Ubuntu speichert Schlüssel in einem Verzeichnis mit Eigentümern, root
Gruppen ssl-cert
und Berechtigungen 710
. Dies bedeutet, dass nur Mitglieder von ssl-cert
auf Dateien in diesem Verzeichnis zugreifen können. Private Schlüssel haben dann Gruppen- ssl-cert
, Eigentümer- root
und Berechtigungsrechte 640
.
Ich hatte ein Problem beim Einrichten von Nginx und bin auf diese Frage gestoßen. Die andere Antwort hier hat die Frage bereits direkt beantwortet, aber ich dachte, ein bisschen mehr Information wäre hilfreich.
Normalerweise wird nginx als root
Benutzer von init scripts / systemd gestartet . Nginx bietet jedoch auch die Möglichkeit, für den normalen Betrieb auf einen weniger privilegierten Benutzer zu wechseln. Meine Frage war also, welcher Benutzer verwendet wird, um das SSL-Zertifikat / den SSL-Schlüssel zu laden? Der erste privilegierte Benutzer oder derjenige, zu dem gewechselt wird?
Glücklicherweise verwendet nginx die anfänglichen Berechtigungen, um das Zertifikat und den Schlüssel in den Speicher zu lesen, bevor Benutzer gewechselt werden. Normalerweise können Sie also die Schlüssel mit sehr eingeschränkten Berechtigungen belassen, da sie von Nginx geladen werden, wenn es noch als ausgeführt wird root
.
Das Problem, auf das ich stieß, war, dass ich ssl_certificate
nur in meinen server
Blöcken definierte nginx.conf
. Ich bekam Fehler, [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
als ich verdammt gut wusste, dass meine Schlüssel am richtigen Ort waren. Das Problem war, dass ich kein ssl_certificate
auf dem http
Niveau von hatte nginx.conf
.
Hoffe das ist hilfreich für jemanden.
nginx
Gruppe lesbar zu machen . Der Webserver kann sie auch dann verwenden, wenn sie nur vonroot
(wie sie sein sollten) lesbar sind .