2012-11-19 15 views
17

के साथ काम करने के लिए एक SSL कुंजी उत्पन्न करना मैं AWS EC2 पर अपने node.js सर्वर के साथ उपयोग करने के लिए GoDaddy के माध्यम से एक SSL सेट अप करने के लिए काम कर रहा हूं। मैं इसे काम करने में असमर्थ रहा हूं।node.js

यहाँ मैं क्या कोशिश की है:

डोमेन के लिए लक्षित है: files.mysite.com

सर्वर पर मैं चलाएँ:

$ openssl req -new -newkey rsa:2048 -nodes -keyout files.mysite.key -out files.mysite.csr 

Common Name: files.mysite.com 
password: left empty 

मैं तो सीएसआर मिलती है: vim files.mysite.csr

मैं कॉपी और पेस्ट करता हूं:

-----BEGIN CERTIFICATE----- 
......... lots of stuff 
-----END CERTIFICATE----- 

अंत में एक अतिरिक्त खाली रेखा है, जिसे मैं रीकी का उपयोग करके गोडाडी इंटरफेस में छोड़ देता हूं और पेस्ट करता हूं।

gd_bundle.crt 
files.mysite.com.crt 

फिर नोड में मैं सम्मिलित करें::

मैं तो GoDaddy कुंजी प्रदान करता है जो डाउनलोड

key: fs.readFileSync('server.key').toString(), 
cert: fs.readFileSync('server.crt').toString() 

मुझे यकीन है कि क्या server.key है या server.crt कि दिया नहीं कर रहा हूँ GoDaddy दो सीआरटी फाइलें प्रदान करता है?
क्या आप मदद कर सकते हैं?

+3

यह सवाल भी एक जवाब है। आपका openssl कमांड "Node.js ऐप्स के लिए एक CSR उत्पन्न करने के लिए उपयुक्त है" या तो यह वास्तव में स्पष्ट है और मैं धीमा हूं या ऐसा नहीं है और मेरे जैसे बहुत सारे लोग हैं जो उस जानकारी की आवश्यकता है, इसलिए मैं चाहता हूं कि मैं इसे अपवित्र कर सकूं एक प्रश्न और उत्तर दोनों। – rainabba

उत्तर

25

GoDaddy आपका प्रमाण पत्र पर हस्ताक्षर करने के एक intermidiate प्रमाण पत्र का उपयोग करता है। आपके और गोडाडी दोनों के लिए इसके कई फायदे हैं। लेकिन इसे काम करने के लिए थोड़ा और काम लगता है (बस थोड़ा सा, ज्यादातर घूमना)।

Node.js में आप इस तरह से उन्हें स्थापित कर सकते हैं:

require('https').createServer({ 
    key: fs.readFileSync('files.mysite.com.key'), 
    cert: fs.readFileSync('files.mysite.com.crt'), 
    ca: [fs.readFileSync('gd_bundle.crt')] // <----- note this part 
}, app).listen(443); 
+2

मैं .key कैसे उत्पन्न करूं? –

+1

चेन बंडल के लिए अच्छा बिंदु। –

+0

आपके पास सीए के आस-पास क्यों है [लेकिन अन्य फ़ील्ड नहीं? –

3

आपको अपने http सर्वर इंस्टेंस के निर्माण पर .crt और .key फ़ाइलों का उपयोग करना चाहिए। निम्नलिखित स्निपेट आप विचार दे देंगे:

require('https').createServer({ 
    key: fs.readFileSync('/path/to/something.key'), 
    cert: fs.readFileSync('/path/to/something.crt'), 
}, app).listen(443); 

आप अपने प्रमुख के लिए एक पदबंध है, तो आप यह हालांकि इस प्रकार पारित कर सकते हैं:

require('https').createServer({ 
    key: fs.readFileSync('/path/to/something.key'), 
    cert: fs.readFileSync('/path/to/something.crt'), 
    passphrase: 'your_secret_passpahrase' 
}, app).listen(443);