2015-01-14 7 views
21

haproxy अब शुरू नहीं करता है असमर्थ है, यह त्रुटिhaproxy - पीईएम फ़ाइल से एसएसएल निजी कुंजी लोड करने के लिए

bind <ip>:443' : unable to load SSL private key from PEM file ... 

हम प्रमाणपत्र या विन्यास पर कुछ भी परिवर्तन नहीं किया पता चलता है। आखिरी शुरुआत के बाद से हमने सिस्टम को केवल सामान्य अपडेट किए हैं।

त्रुटि खोजने के लिए, मैंने एक पूरी तरह से नया प्रमाणपत्र (स्वयं हस्ताक्षरित) उत्पन्न किया लेकिन त्रुटि अभी भी मौजूद है।

यह पीईएम फ़ाइल की संरचना है:

-----BEGIN CERTIFICATE----- 
MIIDXjCCAkY... 
-----END CERTIFICATE----- 
-----BEGIN RSA PRIVATE KEY----- 
MIIEpgIBAAKC.... 
-----END RSA PRIVATE KEY----- 

मैं भी

openssl pkcs8 -topk8 -inform pem -in server.key -outform pem -nocrypt -out server_new.key 

साथ निजी कुंजी परिवर्तित करने के लिए कोशिश की, लेकिन haproxy अब भी वही त्रुटि दर्शाता है।

मैं अब घंटों की कोशिश कर रहा हूं लेकिन मुझे कारण नहीं मिल रहा है। कृपया सहायता कीजिए! धन्यवाद!

अद्यतन:

समस्या फ़ाइल का उपयोग के साथ क्या करने के लिए कुछ है। पीईएम फ़ाइल /data/ssl/domainname/domainname.pem पर संग्रहीत की गई थी। फाइल अधिकार ठीक है। जब मैं पीईएम फ़ाइल को/etc/haproxy में ले जाता हूं तो सब कुछ ठीक है।

उत्तर

7

समस्या जो मैं सेंटोस पर चल रहा था वह था SELinux रास्ते में हो रहा था। यह जांचने के लिए कि क्या SELinux समस्या है रूट को निम्न के रूप में निष्पादित करें: setenforce 0, फिर हैप्रोक्सी को पुनरारंभ करने का प्रयास करें। यदि यह काम करता है, तो एक SELinux समस्या है। (आप अब SELinux को पुनः सक्षम कर सकते हैं और setenforce 1 कमांड के साथ अंतर्निहित समस्या को ठीक करने का प्रयास कर सकते हैं)।

जब से मैं फ़ोल्डर/etc/haproxy/प्रमाण पत्र में प्रमाण पत्र है, निम्न आदेश (अपने ओएस और SELinux config इस या काम नहीं हो सकता है पर निर्भर करता है) फ़ाइलें restorecon -v -R /etc/haproxy पर सही अनुमतियां प्राप्त करने में काम किया।

18

वह आदेश जिसमें पेम में प्रमाण और कुंजी फ़ाइलें दिखाई देती हैं, महत्वपूर्ण है। पेम फ़ाइल बनाने के लिए निम्न का प्रयोग करें।

cat example.com.crt example.com.key > example.com.pem 
+1

यह मेरा पीईएम फ़ाइल में आदेश है, जैसा कि आप मेरे सवाल में देख सकते हैं ... लेकिन धन्यवाद – efdev1234

+1

इस उत्तर मेरी समस्या हल। एक ही त्रुटि के साथ धन्यवाद! मैं फाइलों को जोड़ना भूल गया। – Eye

+0

यह बदल सकता है क्योंकि मुझे यह PEM फ़ाइल में सार्वजनिक प्रमाणपत्र से पहले आने वाली निजी कुंजी के साथ काम कर रहा है। मुझे एक ही त्रुटि मिल रही थी, लेकिन मेरे मामले में ऐसा इसलिए था क्योंकि मैं डॉकर में हैप्रोक्सी चला रहा था लेकिन कंटेनर में वॉल्यूम जोड़ना भूल गया ताकि एचएपीरोक्सी पीईएम देख सके। – NickRamirez

0

कुंजी की शुरुआत में मेरे लिए समस्या एक अजीब चरित्र थी।

इस चरित्र ने प्रतिसाद नहीं दिया जब मैं cat फ़ाइल एड क्योंकि चरित्र <feff> अन्यथा UTF-8 BOM (Byte Order Mark) के रूप में जाना जाता था। यह केवल तब दिखाई देता है जब मैंने विम में फ़ाइल खोली।

मैं यह बहुत आम होने की उम्मीद नहीं करता, लेकिन उम्मीद है कि यह किसी को सिरदर्द बचाता है।

4

मुझे यह त्रुटि भी मिली। इससे पहले कि आप अपने बालों को फेंकना शुरू करें, आप निजी कुंजी से पासफ्रेज को हटाने का प्रयास करना चाहेंगे। यह मेरे लिए समस्या हल हो गई। मुझे लगता है कि HAProxy पुनः आरंभ करने पर पासवर्ड के लिए पूछने के लिए माना जाता है, लेकिन यह 'sudo /etc/init.d/haproxy

पुनः आरंभ पासवर्ड को निकालने के लिए कोशिश ' का उपयोग कर openssl आरएसए -इन मेरे मामले में ऐसा नहीं किया [PRIVATE_KEY_FILE] -out nopassphrase.key '

पासफ्रेज़ आवश्यक है? नीचे दिए गए लिंक में एक चर्चा है। https://security.stackexchange.com/questions/70495/ssl-certificate-is-passphrase-necessary-and-how-does-apache-know-it

2

मेरे लिए समस्या संयुक्त पीईएम फ़ाइल में इस लाइन की वजह से किया गया था:

----- अंत प्रमाण पत्र ---------- RSA निजी कुंजी शुरू ---- -

बाद मैं इसे विभाजित मैं HAProxy शुरू करने और यह ठीक लोड कर सकते हैं:

* ----- अंत प्रमाण पत्र -----

----- BEGIN आरएसए निजी कुंजी ---- *

आशा है कि यह मदद करता है

टी

संबंधित मुद्दे