J'installe un proxy nginx ssl sur mon serveur Fedora.
J'ai créé une paire de certificats et de clés sous/etc/nginx. Ils ressemblent à ceci:
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
...
En tant que root, j'essaie de démarrer le service nginx:
systemctl start nginx.service
J'obtiens l'erreur suivante:
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
Y a-t-il un problème avec les autorisations sur ces fichiers?
Vous avez probablement SELinux en mode d'application (par défaut pour Fedora):
sestatus -v
Si tel est le cas, vérifiez les journaux d'audit, vous devriez trouver l'erreur d'accès:
ausearch -m avc -ts today | audit2allow
Vous avez également probablement déplacé le fichier au lieu de le copier, de sorte que le contexte de sécurité du fichier peut être incorrect.
ls -lrtZ /etc/nginx/demo.*
et corrigez-le si nécessaire:
restorecon -v -R /etc/nginx
Je suppose que c'est SELinux qui refuse la permission. Vérifiez leur contexte SELinux. Le leur devrait être httpd_config_t. Sinon, exécutez
restorecon /etc/nginx/demo.*
ou
chcon httpd_config_t /etc/nginx/demo.*
en tant que root.
Vous pouvez consulter les journaux sous/var/log/audit/pour voir si c'est SELinux qui refuse l'autorisation. Vous pouvez également exécuter
setenforce 0
mettre SELinux en mode permissif. De cette façon, SELinux génère toujours des messages AVC (dans/var/log/audit /) mais autorise l'accès.