ssl yapılandırması için sertifika dosyalarına nginx izni verilmedi.


25

Fedora sunucuma nginx ssl proxy kuruyorum.

/ Etc / nginx altında bir sertifika ve anahtar çifti yarattım. Buna benziyorlar:

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

...

Kök olarak, nginx servisini başlatmaya çalışıyorum:

systemctl start nginx.service

Aşağıdaki hatayı alıyorum:

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

Bu dosyalardaki izinlerde yanlış bir şey mi var?


Sertifika zincirinden bahsediyor ... o demo.crt anahtarının sertifika yetkilisindeki sorun değil mi? Yoksa kendinden imzalı sertifika mı? Bu arada, anahtar dosyanın dünya tarafından okunabilir olması gerektiğini düşünmüyorum. Nginx root olarak açmalı ve daha sonra hangi kullanıcı ile çalışırsa kullansın ayrıcalıklarını bırakmalıdır.
Aleš Krajník 20:13

Kendinden imzalı, evet. Mülkiyeti değiştireceğim, teşekkürler.
numb3rs1x 20:13

Sorunun sertifikalarda olduğunu varsayıyorsunuz, ancak hata mesajı Nginx'in yapılandırma dosyasına uygulanıyor.
bbaassssiiee

Yanıtlar:


39

Muhtemelen zorlama modunda SELinux'unuz var (Fedora için varsayılan):

sestatus -v

Bu durumda, denetim kayıtlarını kontrol edin, erişim hatasını bulmalısınız:

ausearch -m avc -ts today | audit2allow

Muhtemelen dosyayı kopyalamak yerine dosyalanmış olarak da taşıdınız, bu nedenle dosyanın güvenlik içeriği yanlış olabilir.

ls -lrtZ /etc/nginx/demo.* 

ve gerekirse düzeltin:

restorecon -v -R /etc/nginx

Çok teşekkür ederim. Talimatlarına uydum ve artık hata alamıyorum. Bu dosyaları oluşturduğum dizinden taşımak için oldum. Onları bir dahaki sefere aynı dizinde oluşturabilirim. Bunun dışında, bunun gelecekte olmasını nasıl önleyebilirim?
numb3rs1x 20:13

Bu özel kullanım durumu için, cpyerine mvkullan ve auditAVC reddelerini aramak için sistemi kullanmayı öğren .
dawud

Ausearch | audit2allow komutu. Bu selinux'a bazı izinler ekledi mi ya da selinux'un sorun olduğunu onaylamak için mi oldu?
numb3rs1x 20.03.2013

Sadece onaylamak içindi. Ayrıntılar için ilgili kılavuz sayfalarını okuyun.
dawud

4
Vay, teşekkürler! Sadece 'SELinux'u devre dışı bırak' olmayan bir cevaba sahip olmak iyidir.
BCran

7

Sanırım izin vermeyi reddeden SELinux. SELinux içeriğini kontrol edin. Onlarınki httpd_config_t olmalıdır. Eğer değilse, koş

restorecon /etc/nginx/demo.*

veya

chcon httpd_config_t /etc/nginx/demo.*

kök olarak.

Günlükleri / var / log / audit / altında kontrol edebilir ve izin vermeyi reddeden SELinux olup olmadığını kontrol edebilirsiniz. Ayrıca koşabilirsin

setenforce 0

SELinux'u izin verilen moda ayarlamak için . Bu yolla SELinux hala AVC mesajları üretir (/ var / log / audit / içinde) ancak erişime izin verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.