2015-05-27 16 views
10

के तहत एक्सप्रेस सर्वर के साथ एसएसएल हैंडशेक विफल रहा है मैंने अपने मैक पर नवीनतम, 0.12.4, साथ ही एनपीएम से 2.10.1 तक नोड.जेएस को अपग्रेड किया है, और मैं अपने एक्सप्रेस प्रोजेक्ट के लिए एनपीएम इंस्टॉल फिर से चलाया ।नवीनतम नोड और एनपीएम

अब, जब मैं https://localhost:3001 पर जाता हूं, तो मुझे "यह वेबपृष्ठ क्रोम में उपलब्ध नहीं है/ERR_CONNECTION_REFUSED" मिलता है। जब मैं curl -v https://localhost:3001 चलाने मैं

curl -v https://localhost:3001/ 
* Hostname was NOT found in DNS cache 
* Trying ::1... 
* Connected to localhost (::1) port 3001 (#0) 
* Server aborted the SSL handshake 
* Closing connection 0 
curl: (35) Server aborted the SSL handshake 

प्राप्त यह निश्चित रूप से Node.js उन्नयन, के रूप में समस्या अपग्रेड करने के बाद तुरंत क्रॉप का परिणाम है।

मैं अपने सेवा को प्रारंभ इस तरह:

options = { 
    key: fs.readFileSync('sslkey.pem'), 
    cert: fs.readFileSync('sslcert.pem') 
}; 
http.createServer(app).listen(settings.apiPort); 
https.createServer(options, app).listen(settings.apiSSLPort); 
console.log('Listening on ports: ' + settings.apiPort + ' and ' + settings.apiSSLPort); 

किसी को भी किसी भी विचार है कि इस समस्या का कारण है है?

+0

अलग ब्राउज़र और स्पष्ट कैश का प्रयास करें। – deek

+0

'curl -k -v https: // localhost: 3001 /' क्या दिखाता है? '-k' विकल्प वैसे भी" असुरक्षित "कनेक्शन को अनुमति देने के लिए' curl' बताता है। यह '-v' विकल्प के साथ संयुक्त है, आपके सर्वर द्वारा उपयोग किए जाने वाले प्रमाण के बारे में अधिक जानकारी प्रदान करने में मदद करनी चाहिए। वैकल्पिक रूप से, आप 'openssl s_client -connect localhost: 3001' का उपयोग कर सकते हैं। दिलचस्प हिस्सा एसएसएल हैंडशेक के दौरान सिर्फ _when_ निर्धारित करना होगा, कनेक्शन बंद है। – Castaglia

उत्तर

2

मैं एक ही समस्या थी, इस प्रयास करें:

options = { 
     key: fs.readFileSync('sslkey.pem', 'utf-8'), 
     cert: fs.readFileSync('sslcert.pem', 'utf-8'), 
     ca: fs.readFileSync(<CA_FILE>, 'utf-8'), 
     requestCert: true, 
     rejectUnauthorized: false 
    }; 
संबंधित मुद्दे