ssl कॉन्फ़िगरेशन के लिए सर्टिफिकेट फ़ाइलों के लिए nginx अनुमति से इनकार किया


25

मैं अपने फेडोरा सर्वर पर एक nginx ssl प्रॉक्सी स्थापित कर रहा हूं।

मैंने / etc / nginx के तहत एक प्रमाणित और मुख्य जोड़ी बनाई है। वे इस तरह दिखते हैं:

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

...

जड़ के रूप में, मैं nginx सेवा शुरू करने की कोशिश कर रहा हूं:

systemctl start nginx.service

मुझे निम्नलिखित त्रुटि मिलती है:

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

क्या इन फ़ाइलों पर अनुमतियों में कुछ गड़बड़ है?


यह प्रमाण पत्र श्रृंखला का उल्लेख करता है ... उस डेमो के प्रमाणीकरण प्राधिकरण के साथ समस्या नहीं है। कुंजी कुंजी? या यह स्व-हस्ताक्षरित प्रमाण पत्र है? वैसे, मुझे नहीं लगता कि कुंजी फ़ाइल को दुनिया द्वारा पढ़ा जाना चाहिए। Nginx को इसे रूट के रूप में खोलना चाहिए और फिर जो भी उपयोगकर्ता इसे चलाता है उसके लिए विशेषाधिकार छोड़ दें।
एलेक क्राजिन

यह स्व-हस्ताक्षरित है, हाँ। मैं स्वामित्व बदल दूंगा, धन्यवाद।
numb3rs1x

आप मान लेते हैं कि समस्या प्रमाणपत्रों के साथ है, लेकिन त्रुटि संदेश Nginx के लिए कॉन्फ़िगरेशन फ़ाइल पर लागू होता है।
bbaassssiiee

जवाबों:


39

संभवतः आपके पास SELinux इनफोर्सिंग मोड (फेडोरा के लिए डिफ़ॉल्ट):

sestatus -v

यदि यह स्थिति है, तो ऑडिट लॉग की जांच करें, आपको पहुंच त्रुटि का पता लगाना चाहिए:

ausearch -m avc -ts today | audit2allow

आपने शायद इसे कॉपी करने के बजाय दायर को स्थानांतरित कर दिया है, इसलिए फ़ाइल का सुरक्षा संदर्भ गलत हो सकता है।

ls -lrtZ /etc/nginx/demo.* 

और जरूरत पड़ने पर सही करें:

restorecon -v -R /etc/nginx

आपका बहुत बहुत धन्यवाद। मैंने आपके निर्देशों का पालन किया और मुझे अब त्रुटि नहीं मिल रही है। मैंने इन फ़ाइलों को उस निर्देशिका से स्थानांतरित करने के लिए किया था जिसमें मैंने उन्हें बनाया था। मैं उन्हें अगली बार उसी निर्देशिका में बना सकता हूं। इसके अलावा, मैं इसे भविष्य में होने से कैसे रोक सकता हूं?
numb3rs1x

इस विशिष्ट उपयोग के मामले के लिए, एवीसी डेनियल की तलाश करने के लिए सिस्टम का उपयोग cpकरने के बजाय उपयोग करें mvऔर सीखें audit
दाऊद

Theusearch | ऑडिट 2 क्लो कमांड। क्या उसने कुछ अनुमतियाँ selinux में जोड़ी हैं या क्या यह पुष्टि करने के लिए कि selinux समस्या थी?
numb3rs1x

बस पुष्टि करनी थी। विवरण के लिए उनके संबंधित मैनुअल पेज पढ़ें।
दाऊद

4
वाह धन्यवाद! इसका उत्तर देना अच्छा है जो कि सिर्फ 'SELinux अक्षम' नहीं है।
बीकानेर

7

मुझे लगता है कि यह SELinux है जो अनुमति से इनकार करता है। उनके SELinux संदर्भ की जाँच करें। उनका होना httpd_config_t होना चाहिए। यदि नहीं, तो भागो

restorecon /etc/nginx/demo.*

या

chcon httpd_config_t /etc/nginx/demo.*

जड़ के रूप में।

आप यह देख सकते हैं कि / SEL / var / log / ऑडिट के तहत लॉग की जाँच करें कि क्या यह SELinux है जो अनुमति से इनकार करता है। आप भी चला सकते हैं

setenforce 0

SELinux को परमिशन मोड में सेट करने के लिए । इस तरह, SELinux अभी भी AVC मैसेज (/ / var / log / ऑडिट / में) जेनरेट करता है लेकिन एक्सेस की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.