Apache: SSLCertificateKeyFile: फ़ाइल मौजूद नहीं है या खाली है


33

मैं SSL कॉन्फ़िगर कर रहा हूं Apache 2। मेरे प्रणाली है Ubuntu Server 10.04 LTS। मेरे vhost कॉन्फ़िगरेशन में SSL से संबंधित निम्नलिखित सेटिंग्स हैं:

SSLEngine On
SSLCertificateKeyFile /etc/ssl/private/server.insecure.key
SSLCertificateFile    /etc/ssl/certs/portal.selfsigned.crt

(साइड नोट: मैं .insecureकुंजी फ़ाइल के लिए उपयोग कर रहा हूं क्योंकि फ़ाइल पासफ़्रेज़-संरक्षित नहीं है, और मुझे स्पष्ट रूप से यह देखना पसंद है कि यह एक असुरक्षित कुंजी फ़ाइल है)

इसलिए, जब मैं अपाचे को पुनः आरंभ करता हूं तो मुझे निम्न संदेश मिलता है:

Syntax error on line 39 of /etc/apache2/sites-enabled/500-portal-https:
SSLCertificateKeyFile: file '/etc/ssl/private/server.insecure.key' does not exist or is empty
Error in syntax. Not restarting.

लेकिन फ़ाइल वहाँ है, और खाली नहीं है (वास्तव में इसमें एक निजी कुंजी शामिल है):

sudo ls -l /etc/ssl/private/server.insecure.key
-rw-r----- 1 root www-data 887 2012-08-07 15:14 /etc/ssl/private/server.insecure.key
sudo ls -ld /etc/ssl/private/
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/

मैंने दो समूहों www-data और ssl-cert का उपयोग करके, स्वामित्व को बदलने की कोशिश की है। मुझे यकीन नहीं है कि उबंटू में कौन सही है: डिफ़ॉल्ट रूप से उबंटू एसएसएल-सर्टिफिकेट का उपयोग करता है, लेकिन दूसरी तरफ एपाचे प्रक्रियाएं उपयोगकर्ता www-data के साथ चलती हैं: यह उपयोगकर्ता रूट द्वारा शुरू किया गया है, लेकिन कुछ पर www-data में बदल जाता है बिंदु, और मुझे यकीन नहीं है कि प्रमाण पत्र कब पढ़े जाते हैं।

लेकिन वैसे भी, समूह के मालिक को बदलने से स्थिति में सुधार नहीं हुआ है। मेरे प्रश्न हैं:

  1. इस कार्य को करने के लिए मैं और क्या प्रयास कर सकता हूं?
  2. मैं कैसे सत्यापित कर सकता हूं कि मेरी कीफाइल एक वैध कीफाइल है?
  3. मैं कैसे सत्यापित कर सकता हूं कि कीफाइल और प्रमाणपत्र ( /etc/ssl/certs/portal.selfsigned.crt) एक साथ काम करते हैं?

मुझे लगता है कि अपाचे एक भ्रामक त्रुटि संदेश दे रहा है, और मैं त्रुटि को इंगित करना चाहूंगा।


नमस्कार, क्या आप इस प्रश्न को उत्तर के रूप में चिह्नित कर सकते हैं?

2
मुझे यह इंगित करना चाहिए कि मुझे यह त्रुटि संदेश चलने की मूल गलती से मिला service apache2 restartहै **sudo** service apache2 restart... स्वयं पर ध्यान दें:sudo make me a sandwich fool
icc97

मुझे निम्नलिखित लेख बहुत मददगार लगते हैं। मैं इस थ्रेड द्वारा सिस्टम सेटअप नहीं कर सका। digitalocean.com/community/tutorials/…
Léo Léopold Hertz 15

जवाबों:


37

मुझे त्रुटि मिली। ऐसा इसलिए था क्योंकि मैं प्रमाण पत्र को सेटअप करने के लिए एक स्क्रिप्ट का उपयोग कर रहा हूं, और जो चरण मैं कर रहा हूं उनमें से एक है apache2ctl configtest। इस आदेश से त्रुटि आ रही थी, और अपाचे पुनरारंभ से नहीं, जो मुझे गुमराह कर रहा था। चूंकि मैं apache2ctl कमांड को सामान्य उपयोगकर्ता के रूप में चला रहा था, इसलिए इसमें कीफाइल्स और इस प्रकार त्रुटि संदेश का उपयोग नहीं था।

सुविधा: सुनिश्चित करें कि आपके सभी अपाचे कमांड apache2ctlसुडो के साथ चलाए जा रहे हैं, यहां तक ​​कि जो केवल सिंटैक्स सत्यापन ( ) के लिए अभिप्रेत हैं , क्योंकि उन्हें कुंजी की पहुंच की आवश्यकता होती है।


8

मुझे भी संदेश मिला है

SSLCertificateKeyFile: file '/path/to/file' does not exist or is empty

जबकि /path/to/file मौजूद है और सही अनुमति है, सिर्फ SELinux चालू होने के कारण और यह फ़ाइल अपाचे उपयोगकर्ता के लिए अस्वीकार्य थी।

यह इस तरह दिख रहा है:

$ sudo ls -laZ /etc/pki/tls/certs/
drwxr-xr-x. root root system_u:object_r:cert_t:s0      .
drwxr-xr-x. root root system_u:object_r:cert_t:s0      ..
-rw-------. root root unconfined_u:object_r:cert_t:s0  this-one-works.crt
-rw-------. root root unconfined_u:object_r:admin_home_t:s0 this-one-is-unaccessable.crt

इसे ठीक करने के लिए, मैं चलाता हूं sudo restorecon -Rv /etc/pki/tls/certs/- यह समस्या फ़ाइल के लिए SELinux संपत्ति की मरम्मत करेगा।


इसने मुझे उस सर्वर पर उत्पन्न नहीं होने वाले
सेर्ट्स के


@FranciscoCorralesMorales पैकेज restoreconका एक हिस्सा है policycoreutils। इसके अलावा आप शायद SELinux नहीं है?
एंटोनियोके

6

मैंने ऐसा किया है और इसने मुझे सेंटोस 5.7 पर मदद की है

server:~ # chcon -t cert_t /etc/pki/tls/private/my.key 
server:~ # ls -laZ /etc/pki/tls/private/

1

मुझे एक समान संदेश मिला:

SSLCertificateChainFile: file '/opt/bitnami/apache2/conf/DigiCertCA.crt\xe2\x80\x9d' does not exist or is empty

मेरी समस्या यह थी कि मैं जिस पाठ संपादक का उपयोग कर रहा था, वह एक सामान्य दोहरे उद्धरण के रूप में एक "सही उद्धरण" का उपयोग कर रहा था; एक यूनिक्स-प्रकार के संपादक (उदाहरण के लिए TextWrangler) का उपयोग करके सही उद्धरण में रखा गया और समस्या को ठीक किया।


0

अनुमतियाँ गलत हैं, लेकिन आपके उत्तर के अनुसार यह समस्या का कारण नहीं था:

drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/

/ etc / ssl / निजी आमतौर पर डेबियन आधारित प्रणालियों पर समूह ssl- प्रमाणपत्र के अंतर्गत आता है।

बस 0710 परमिट देखा और आश्चर्य है कि यह क्या के लिए इस्तेमाल किया जा सकता है।


आपका शायद सही है, यह कम से कम 0750 होना चाहिए। मैं अलग-अलग चीजों की कोशिश कर रहा हूं, और मैंने जो स्थिति पोस्ट की है वह शायद सबसे सही नहीं है। Apache2ctl को रूट के रूप में चलाने से मेरी समस्याओं का समाधान हो गया है।
डेंजरसफास्ट

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