Frage Nginx-Berechtigung für Zertifikatsdateien für SSL-Konfiguration verweigert


Ich installiere einen Nginx SSL Proxy auf meinem Fedora Server.

Ich habe ein Cert und ein Schlüsselpaar unter / etc / nginx erstellt. Sie sehen so aus:

ls -l /etc/nginx/
total 84
...
-rw-r--r--. 1 root root 1346 Sep 20 12:11 demo.crt
-rw-r--r--. 1 root root 1679 Sep 20 12:11 demo.key

...

Als root versuche ich den Nginx-Dienst zu starten:

systemctl start nginx.service

Ich erhalte den folgenden Fehler:

nginx[30854]: nginx: [emerg]
SSL_CTX_use_certificate_chain_file("/etc/nginx/demo.crt") failed (SSL: error:0200100D:system     library:fopen:Permission denied...e:system lib)
nginx[30854]: nginx: configuration file /etc/nginx/nginx.conf test failed

Stimmt etwas mit den Berechtigungen für diese Dateien nicht?


19
2017-09-20 16:23


Ursprung


Es erwähnt Zertifikatskette ... ist nicht das Problem mit der Zertifizierungsstelle dieses demo.crt Schlüssels? Oder ist es ein selbstsigniertes Zertifikat? Übrigens glaube ich nicht, dass die Schlüsseldatei von der Welt gelesen werden sollte. Nginx sollte es als root öffnen und dann die Privilegien für jeden Benutzer löschen, der es ausführt. - Aleš Krajník
Es ist selbstsigniert, ja. Ich werde das Eigentum ändern, danke. - numb3rs1x
Sie nehmen an, dass das Problem mit den Zertifikaten auftritt, aber die Fehlermeldung gilt für die Konfigurationsdatei für Nginx. - bbaassssiiee


Antworten:


Sie haben wahrscheinlich SELinux im Erzwingungsmodus (der Standard für Fedora):

sestatus -v

Wenn dies der Fall ist, überprüfen Sie die Audit-Protokolle, sollten Sie den Zugriffsfehler finden:

ausearch -m avc -ts today | audit2allow

Sie haben das Feld wahrscheinlich auch verschoben, anstatt es zu kopieren, sodass der Sicherheitskontext der Datei möglicherweise falsch ist.

ls -lrtZ /etc/nginx/demo.* 

und korrigieren Sie es bei Bedarf:

restorecon -v -R /etc/nginx

31
2017-09-20 16:38



Vielen Dank. Ich habe Ihre Anweisungen befolgt und erhalte den Fehler nicht mehr. Ich habe diese Dateien aus dem Verzeichnis verschoben, in dem ich sie erstellt habe. Ich kann sie beim nächsten Mal im selben Verzeichnis erstellen. Abgesehen davon, wie verhindere ich das in der Zukunft? - numb3rs1x
Verwenden Sie für diesen speziellen Anwendungsfall cp anstatt mv und lernen, das zu benutzen audit System für AVC Dementi suchen. - dawud
Der Ausweg | audit2allow Befehl. Hat das Selinux einige Berechtigungen hinzugefügt oder war das nur um zu bestätigen, dass Selinux das Problem war? - numb3rs1x
Es war nur zu bestätigen. Für Details lesen Sie bitte die entsprechenden Manualseiten. - dawud
Wow, danke! Es ist gut, eine Antwort zu haben, die nicht nur SELinux deaktiviert. - BCran


Ich denke, SELinux verweigert die Erlaubnis. Überprüfen Sie ihren SELinux-Kontext. Ihre sollten httpd_config_t sein. Wenn nicht, lauf

restorecon /etc/nginx/demo.*

oder

chcon httpd_config_t /etc/nginx/demo.*

als root.

Sie können Protokolle unter / var / log / audit / überprüfen, um festzustellen, ob SELinux die Berechtigung verweigert. Sie können auch laufen

setenforce 0

um SELinux einzustellen Freizügigkeitsmodus. Auf diese Weise generiert SELinux immer noch AVC-Nachrichten (in / var / log / audit /), erlaubt aber den Zugriff.


5
2017-09-20 16:37



Restorecon hat es geschafft! Vielen Dank! - Christian Goudreau