गोडैडी द्वारा जारी प्रमाण पत्र [बंद] का उपयोग करते समय "सार्वजनिक कुंजी प्रमाणपत्र और निजी कुंजी मेल नहीं खाती"


86

मैं एक नए लोड बैलेंसर पर एक GoDaddy SSL प्रमाणपत्र स्थापित करने का प्रयास कर रहा हूं, जो मैं Amazon AWS पर स्थापित कर रहा हूं। मैंने मूलतः Godaddy पर एक Glassfish 3.1 सर्वर (Amazon linux ami) पर डायरेक्ट इंस्टॉलेशन के लिए कीटल प्रोग्राम का उपयोग करके प्रमाणपत्र बनाया। मुझे सर्वर पर सीधे उस सेटअप को प्राप्त करने में कोई समस्या नहीं थी। मुझे अब वेब सर्वर से नए लोड बैलेंसर के लिए प्रमाण पत्र को स्थानांतरित करने की आवश्यकता है। अमेज़ॅन को पीईएम प्रारूप में निजी कुंजी और सीट्स की आवश्यकता होती है, इसलिए मैंने नए सिरेट्स बनाने के लिए GoDaddy पर "rekey" टूल का उपयोग किया। जब मैं AWS Mgmt कंसोल पर लोड बैलेंसर सेटअप स्क्रीन में लोड करता हूं, तो मुझे त्रुटि संदेश मिलता है: "सार्वजनिक कुंजी प्रमाणपत्र और निजी कुंजी मेल नहीं खाती।"

यहाँ बताया गया है कि मैं कैसे कुंजियाँ बना रहा हूँ:

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

मैं तब "rekey" प्रक्रिया के दौरान .csr फ़ाइल को GoDaddy में जमा करता हूँ। एक बार पूरा हो जाने के बाद, मैं 2 नए बनाए गए सीट्स डाउनलोड करता हूं (apps.mydomain.com.crt & gd_bundle.crt)। मैं उन्हें (Apache) सर्वर के प्रकार के रूप में चुन रहा हूं (Apache) डाउनलोड करता हूं (मैंने "अन्य" और "Cpanel" की भी कोशिश की है, लेकिन सभी समान दिखते हैं)।

इस बिंदु पर, मैं निम्न आदेश का उपयोग करके Private.key फ़ाइल से एन्क्रिप्शन को हटाता हूं:

$ openssl rsa -in private.key -out private.pem

इस बिंदु पर, मैं AWS Mgmt कंसोल में वापस जाता हूं, लोड बैलेंसर बनाता हूं, सुरक्षित सर्वर को पुनर्निर्देशित करता हूं और निम्न फ़ाइलों की सामग्री को स्क्रीन पर संबंधित फ़ील्ड में डालता हूं जहां यह ssl प्रमाणपत्र सेटअप करने के लिए कहता है:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain

जब मैं "जारी रखें बटन" पर क्लिक करता हूं तो मुझे त्रुटि मिलती है "त्रुटि: सार्वजनिक कुंजी प्रमाणपत्र और निजी कुंजी मेल नहीं खाती।"

-यहाँ एक तरीका है जिससे मैं परीक्षण कर सकता हूं कि मुझे अमेज़ॅन से एक वैध त्रुटि संदेश मिल रहा है? यह मुझे अजीब लगता है कि जब मैं GoDaddy के निर्देशों का बहुत बारीकी से पालन कर रहा हूं, तो चाबी मेल नहीं खाएगी।

मैंने .csr बनाने से पहले RSA एन्क्रिप्शन के बिना Private.key फ़ाइल बनाने की कोशिश की है और इससे कोई फर्क नहीं पड़ता।

मैं यह भी मान रहा हूँ कि .crt फ़ाइलों को मैं GoDaddy से डाउनलोड कर रहा हूँ .PEM प्रारूप में हैं, लेकिन मुझे यकीन नहीं है कि इसे कैसे सत्यापित किया जाए।

कोई विचार?


1
स्टैक ओवरफ्लो प्रोग्रामिंग और विकास प्रश्नों के लिए एक साइट है। यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। देखें किन विषयों मैं यहाँ के बारे में पूछ सकते हैं सहायता केंद्र में। शायद सुपर यूजर पूछने के लिए एक बेहतर जगह होगी। यह भी देखें कि मैं देव ऑप्स के बारे में प्रश्न कहां से पोस्ट करूं?
jww

यह पोस्ट 3 साल से अधिक पुरानी है, अब इसे स्थानांतरित करने के लिए परेशान क्यों?
फेल्बी

1
फेल्बी - लोग अक्सर कहते हैं, "... लेकिन इस पोस्ट और उस पोस्ट को देखें"। इसलिए इसकी नई पोस्टों को चुस्त-दुरूस्त रखने के लिए पर्याप्त नहीं है - हमें कम से कम पुरानी पोस्टों पर एक संदेश प्राप्त करना होगा। और इसके लायक, मैं इसके लिए बुरा सवाल नहीं सोचता। स्टैक ओवरफ्लो के लिए इसका बस थोड़ा सा विषय है।
jww

@ इस स्वीकृति के लिए आपको इस उत्तर पर विचार करना चाहिए । यह सबसे अधिक डेवलपर्स है जब यह समस्या AWS के साथ आती है।
नोएल बैरन

जवाबों:


61

मेरे लिए, यह एक आसान दो-चरण था:

  1. निजी कुंजी को PEM में बदलें:

    openssl rsa -in yourdomain.key -outform PEM

  2. प्रमाणपत्र और प्रमाणपत्र बंडल को पीईएम में बदलें :

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt


1
इस विशेष उत्तर ने वास्तव में मेरी मदद की। धन्यवाद जोनाथन रिकॉर्ड के लिए, yourdomain.crt सार्वजनिक कुंजी है, जो प्रमाण पत्र आपको अपने प्रदाता से मिला है, (और भी हो सकता है)
user_v

मुझे एक त्रुटि WARNING: can't open config file: /etc/pki/tls/openssl.cnf
मिलती है

2
@tq - कुछ ओपनएसएसएल कमांड भी एक -configविकल्प लेते हैं। इसका उपयोग उस विन्यास फ़ाइल के पथ को निर्दिष्ट करने के लिए करें जिसका आप उपयोग कर रहे हैं।
jww

@felby को स्वीकार किए गए उत्तर के रूप में इसे चिह्नित करना चाहिए। यह एकमात्र उत्तर है जो iOS उपकरणों के साथ एसएसएल ट्रस्ट मुद्दा नहीं बनाता है।
नोएल बैरन

यह उत्तर वाइल्डकार्ड SSL के साथ वास्तव में मददगार है। आपको domain.crt और gd_bundle.crt फ़ाइल दोनों को कनवर्ट करना होगा।
न्यूक्लियर

40

सिर्फ रिकॉर्ड के लिए और कोई भी जो इसे जानने की कोशिश कर रहा है:

yourdomain.key -> टर्मिनल कमांड: sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem -> निजी कुंजी

yourdomain.crt -> सार्वजनिक कुंजी

gd_bundle.crt -> प्रमाणपत्र श्रृंखला

और आप जाने के लिए अच्छा है :)


2
OMG, मैंने समस्या के साथ इतने घंटे खो दिए, आपने मुझे बचा लिया! मैंने एक रैपिडएसएसएल प्रमाण पत्र खरीदा: चाल 1 थी) निजी कुंजी को बदलें जैसे कि आप यहां सुझाव देते हैं और 2) रैपिडएसएसएल द्वारा प्रदान की गई प्रमाण पत्र श्रृंखला में प्रमाण पत्र के आदेश को उल्टा करते हैं। धन्यवाद!
मिनीक्वार्क

मुझसे पासवर्ड मांगता रहता है, लेकिन मेरा रैपिड्सिल सर्टिफिकेट एक
tq

जब तक आपका खाता कुछ अलग तरीकों से पासवर्ड की आवश्यकता नहीं है, तब तक sudo कमांड एडमिन पासवर्ड मांगेगा। क्या वह पासवर्ड जिसे आप संदर्भित कर रहे हैं?
क्रिस जे

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

23

ऐसा लगता है कि यह मुद्दा था जिस तरह से मैं कुंजी और सामग्री की सामग्री को एडब्ल्यूएस प्रबंधन कंसोल में कॉपी कर रहा था। मैं विंडोज 7 डेस्कटॉप पर वर्चुअल बॉक्स में चल रहे उबंटू डेस्कटॉप का उपयोग कर रहा था; विंडोज बॉक्स पर चलने वाले ब्राउज़र में एक गेडिट स्क्रीन से मूल्यों को कॉपी और पेस्ट करना। एक बार जब मैंने वेब ब्राउज़र (इस मामले में विंडोज) के रूप में एक ही बॉक्स पर कुंजी और प्रमाणित फाइलें खोलीं, तो सिल्ट ठीक-ठाक से गुजर गई। मुझे लगता है कि वर्चुअल बॉक्स क्लाइंट और होस्ट के बीच साझा क्लिप बोर्ड का उपयोग करते समय फ़ाइल के कुछ हिस्से इसे सही तरीके से नहीं बना रहे हैं। मामला समाप्त।


क्या आप अपना उत्तर स्वीकार कर सकते हैं ताकि लोग जान सकें कि यह हल हो गया है?
फिल स्टर्जन

2
अजीब, मुझे लगा कि मैं बहुत पहले ही स्वीकार कर चुका था ...
फेल्बी

7

हमें इस समस्या का एक वैकल्पिक समाधान मिला। हम एक ही त्रुटि के साथ एक ही लक्षण थे।

फिर हमने पेम कोड को एक बार फिर से दर्ज करने की कोशिश की, लेकिन इस बार हमने एक बार में प्रवेश करने के लिए सुनिश्चित किया और सुनिश्चित करें कि प्रत्येक विंडो के अंत में कर्सर एक रिक्त रेखा पर था। फिर हमने उसे बचा लिया। इसने काम कर दिया।

इससे हमारी समस्या हल हो गई, इसलिए यह इसे दूसरों के लिए हल कर सकता है।


1

एक छोटी गच्चा। मैं एक विंडोज बॉक्स (विन 7 प्रो) का उपयोग कर रहा हूं और जब मैंने ओपनएसएसएल के विंडोज पोर्ट का उपयोग किया था, तो आउटपुट की गई फ़ाइलों में यूनिक्स शैली के अंत-पंक्ति वर्ण (एलएफ) थे।

मुझे निजी कुंजी को अपलोड करने के लिए फ़ाइल को विंडोज शैली (CRLF) में बदलना पड़ा।


0

मैं आप लोगों के लिए एक वैकल्पिक समाधान और एक जानकारी के साथ सुझाव दे सकता हूं। आम तौर पर सभी प्रमाण पत्र पीईएम फ़ाइल प्रारूप के होते हैं। आप बस एक नोटपैड या किसी भी टेक्स्ट एडिटर को खोल सकते हैं और उन फाइलों को ड्रैग कर सकते हैं, जिन्हें आपने .crt फाइल फॉर्मेट में प्राप्त किया है। जिसे आम तौर पर .PEM फ़ाइल के रूप में कहा जाता है। यदि आपके केटूल में लोड किया गया सर्टिफिकेट है तो आप कीटूल से pfx फाइल के रूप में सर्टिफिकेट का निर्यात कर सकते हैं। फिर आप pfx फ़ाइल को निजी कुंजी से pfx फ़ाइल से अलग कर सकते हैं। क्योंकि pfx फ़ाइल आपके प्रमाणपत्र और निजी कुंजी का संयोजन है। इसलिए आप अलग से निजी कुंजी फ़ाइल प्राप्त कर सकते हैं और अपने amazon aws पर इसका उपयोग कर सकते हैं।

मुझे संदेह है कि प्रमाणपत्र स्थापित करने का एक और तरीका हो सकता है। हो सकता है कि आप प्रमाणपत्र प्राधिकारी से संपर्क कर सकते हैं और आपके प्रमाणपत्र को फिर से जारी करने का कोई तरीका है।

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