क्या HTTPS के साथ WebSockets करना संभव है?
HTTPS पर स्विच करते समय, मेरा WebSocket सुरक्षा त्रुटि देता है और नियमित HTTP के साथ पूरी तरह से काम करता है।
नीचे, एक स्निपेट;
socket = new WebSocket("ws://my_www:1235");
क्या HTTPS के साथ WebSockets करना संभव है?
HTTPS पर स्विच करते समय, मेरा WebSocket सुरक्षा त्रुटि देता है और नियमित HTTP के साथ पूरी तरह से काम करता है।
नीचे, एक स्निपेट;
socket = new WebSocket("ws://my_www:1235");
जवाबों:
WebSocket कनेक्शन एक HTTP या HTTPS हैंडशेक के साथ अपना जीवन शुरू करता है। जब पृष्ठ HTTP के माध्यम से एक्सेस किया जाता है, तो आप WS या WSS (WebSocket safe: WS over TLS) का उपयोग कर सकते हैं। हालाँकि, जब आपका पृष्ठ HTTPS के माध्यम से लोड होता है, तो आप केवल WSS का उपयोग कर सकते हैं - ब्राउज़र सुरक्षा को "डाउनग्रेड" करने की अनुमति नहीं देते हैं।
आप HTTPS से अधिक WebSockets का उपयोग नहीं कर सकते, लेकिन आप TLS पर HTS (HTTPS HTTP पर TLS पर) का उपयोग कर सकते हैं। यूआरआई में बस "wss: //" का उपयोग करें।
मेरा मानना है कि फ़ायरफ़ॉक्स का हालिया संस्करण आपको HTTPS पेज से नॉन-टीएलएस वेबस्केट का उपयोग नहीं करने देगा, लेकिन रिवर्स में कोई समस्या नहीं होनी चाहिए।
wss://
करने के लिए ws://
। तो, मैं उपयोग करता हूं wss://ws.domain.com
और अपाचे उस पर प्रॉक्सी लागू करता है और अनुरोध को रीडायरेक्ट करता है जहां डब्ल्यूएस सर्वर चल रहा है। उदाहरण के लिए: ws://10.12.23.45:5641/server.php
। और मुझे पता है कि इसका बहुत बुरा समाधान है - हालांकि, यह मेरे लिए काम करता है। यदि आप मुझे अपाचे विन्यास के माध्यम से मार्गदर्शन करते हैं तो मैं आपकी मदद की सराहना करता हूं। जैसे: कहाँ डाल करने के लिए .cert
धन्यवाद!
1 अतिरिक्त चेतावनी (कनक / याचिकाकर्ता द्वारा उत्तर के अलावा): यदि आप WSS का उपयोग करते हैं, और सर्वर प्रमाणपत्र ब्राउज़र को स्वीकार्य नहीं है, तो आपको कोई ब्राउज़र रेंडर डायलॉग नहीं मिल सकता है (जैसे कि यह वेब पेज के लिए होता है)। ऐसा इसलिए है क्योंकि WebSockets को एक तथाकथित "सबस्रोस" के रूप में माना जाता है, और प्रमाण पत्र स्वीकार / सुरक्षा अपवाद / जो कुछ संवाद उप-स्रोतों के लिए प्रदान नहीं किए जाते हैं।
alert()
?