Das Lesen privater Schlüssel sollte stark eingeschränkt sein. Berechtigungen auf 600
setzen und im Besitz von root
sollte arbeiten. Es gibt jedoch andere sichere Berechtigungseinstellungen - Ubuntu speichert Schlüssel in einem Verzeichnis mit Besitzer root
und Gruppe ssl-cert
und Berechtigungen 710
. Das bedeutet, dass nur Mitglieder von ssl-cert
kann auf alle Dateien in diesem Verzeichnis zugreifen. Private Schlüssel haben dann die Gruppe ssl-cert
, Besitzer root
und Berechtigungen 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 wenig mehr Informationen wären hilfreich.
Normalerweise wird nginx als root
gestartet Benutzer durch Init-Skripte / systemd. nginx hat jedoch auch die Möglichkeit, für den normalen Betrieb zu einem weniger privilegierten Benutzer zu wechseln. Meine Frage war also, welcher Benutzer zum Laden des SSL-Zertifikats/Schlüssels verwendet wird. 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 der Benutzer gewechselt wird. Normalerweise können Sie die Schlüssel also wirklich mit sehr eingeschränkten Berechtigungen belassen, da sie von nginx geladen werden, wenn es noch als root
ausgeführt wird .
Das Problem, das mich hierher geführt hat, war, dass ich ssl_certificate
definiert habe nur in meinem server
Blöcke in nginx.conf
. Ich habe Fehler wie [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
erhalten als ich verdammt genau wusste, dass meine Schlüssel am richtigen Ort waren. Das Problem war, dass ich keinen ssl_certificate
hatte bei http
Stufe nginx.conf
.
Hoffe, das ist hilfreich für jemanden.