2015-09-21 4 views
6

मैंने एक प्रमाणपत्र खरीदा है और मेरी node.js वेबसाइट में स्थापित किया है। लेकिन ब्राउज़र पर https हरा दिखाता है और ठीक है.अब, मैं wss का उपयोग करके सॉकेट कनेक्शन स्थापित करने की कोशिश कर रहा हूं, लेकिन यह विफल । जावास्क्रिप्ट क्लाइंट पक्ष में त्रुटि इस तरह है।wss पर WebSocket कनेक्शन

WebSocket connection to 'wss://securedsitedotcom:3003/call' failed:   
    WebSocket opening handshake was canceled 

कृपया मदद करें! ग्राहक के पक्ष में

संहिता (जावास्क्रिप्ट) सर्वर साइड पर

var ws = new WebSocket('wss://securedsitedotcom:3003/call'); 

संहिता (Node.js) ब्राउज़र कंसोल पर

https = require('https'); 
var server = https.createServer({ 
    key: fs.readFileSync(config.certKeyPath), 
    cert: fs.readFileSync(config.certCrt), 
    requestCert: true, 
    rejectUnauthorized: false 
},app); 
server.listen(port); 
var wss = new ws.Server({ 
    server: server, 
    path: '/call' 
}); 

त्रुटि:

WebSocket connection to 'wss://securedsitedotcom:3003/call' failed:   

WebSocket opening handshake was canceled 
+1

क्या सर्वर पोर्ट 3003 पर Wss लागू करता है? –

+0

लगता है जैसे सर्वर कनेक्शन अपग्रेड नहीं कर रहा है: क्या आप अधिक जानकारी प्रदान कर सकते हैं? – pietro909

+0

हाँ, सर्वर पोर्ट 3003 @DavidSchwartz – Thabung

उत्तर

2

साथ हाल के काम क्रोम ने खुलासा किया है कि यदि क्रोम पर एक पृष्ठ https के रूप में कार्य किया जाता है, तो websockets को wss का उपयोग करना चाहिए। और यदि wss का उपयोग किया जाना चाहिए, तो पोर्ट 443 का उपयोग किया जाना चाहिए (और किसी भी अन्य सुरक्षित बंदरगाह को बूट करने के लिए और अब तक मैंने पोर्ट को बदलने का कोई तरीका नहीं देखा है), जो आपकी पोर्ट हो सकती है क्योंकि आपका पोर्ट ऊपर 3003 जैसा दिखता है।

अभी मैं अपने आईटी समूह को उस सर्वर पर अपाचे को पैच/अपग्रेड करने की कोशिश कर रहा हूं, इसलिए mod_proxy_wstunnel का उपयोग अपाचे को 443 पर एक रिवर्स प्रॉक्सी सुनने और मेरे वेबसाईट सर्वर के माध्यम से सभी डब्ल्यूएसएस ट्रैफिक को पास करने के लिए किया जा सकता है।

उम्मीद है कि इससे मदद मिलती है।

2

मैं एक समान मुद्दे में भाग गया, लेकिन मैं एक स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहा था। आपने बताया कि आपने एक प्रमाणपत्र खरीदा है। मैं अतिथि प्रमाण पत्र प्राधिकरण द्वारा हस्ताक्षरित है।

अन्यथा, मेरे मामले में, गैर-प्रमाणित प्रमाणपत्र "उद्घाटन हैंडशेक रद्द कर दिया गया" त्रुटि का कारण बन सकता है। एक मान्य प्रमाणपत्र या तो किसी तृतीय पक्ष (प्रमाणपत्र प्राधिकरण, यानी वेरीसिगन) द्वारा सत्यापित किया जाता है या स्पष्ट रूप से ग्राहक द्वारा अधिकृत किया जाता है।

मेरे मामले में, वेरीसिगन ने मेरे प्रमाणपत्र (स्वयं हस्ताक्षरित) पर हस्ताक्षर नहीं किए, इसलिए मुझे इसे स्पष्ट रूप से अधिकृत करना पड़ा। ऐसा करने के लिए, मुझे बस ब्राउजर के साथ https यूआरएल पर जाना होगा (आपके मामले में "https://securedsitedotcom:3003/call")। फिर एक "चेतावनी अनधिकृत मेजबान" दिखाई देता है। आपको अपवाद को अधिकृत करने की आवश्यकता है और आप अपना डब्ल्यूएसएस कनेक्शन बना सकते हैं।

आपका सर्वर किसी भी पोर्ट का उपयोग कर सकता है, यह 443 के लिए बाध्य नहीं है। 443 https के लिए डिफ़ॉल्ट पोर्ट है लेकिन आपके द्वारा किए गए किसी पोर्ट को स्पष्ट रूप से निर्दिष्ट किया जा सकता है।

मुझे आशा है कि यह किसी की मदद करेगी।

+0

आपका सर्वर किसी भी पोर्ट का उपयोग कर सकता है, यह सच है, लेकिन मैं अभी भी एक्सेस कर सकता हूं। 'ws: //maximumroulette.com: 10066 /' में वेबसॉकेट कनेक्शन: हैंडशेक प्रतिक्रिया प्राप्त करने से पहले कनेक्शन बंद हो गया 'wss: //maximumroulette.com: 10066 /' में वेबसॉकेट कनेक्शन विफल: वेबसॉकेट खोलने का हैंडशेक रद्द कर दिया गया मुझे मार दो .... –

+1

यह थोड़ी देर हो गया है, मुझे आशा है कि आप इसे ठीक कर दें। अन्यथा, क्या मैंने अपनी प्रतिक्रिया में कहा है, "उद्घाटन हैंडशेक रद्द कर दिया गया था" त्रुटि शायद आपके ** ब्राउज़र ** ** ** अमान्य स्रोत ** से आपकी रक्षा कर रही है।(उर्फ, आपका प्रमाणपत्र यह या तो ** एक सीए (यानी Verisign) द्वारा ** हस्ताक्षरित नहीं ** या ** स्पष्ट रूप से autorized **)। क्रोम का उपयोग करके अधिकृत करने के लिए, या तो https सर्वर पर जाएं और चेतावनी पास करें या सेटिंग्स => https/ssl => प्रमाणपत्र प्रबंधित करें => वहां से स्वतः व्यवस्थित करें – w4rt3r

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