2016-02-03 6 views
10

मैं के रूप में में देखा Kurento WebRTC का जावास्क्रिप्ट रिकॉर्डिंग उदाहरण चलाने के लिए कोशिश कर रहा हूँ:Kurento - WebSocket कनेक्शन विफल

http://doc-kurento.readthedocs.org/en/stable/tutorials/js/tutorial-recorder.html

मैं एक Ubuntu मशीन पर सेटअप Kurento है और यह ठीक चल रहा है। सेवा भी शुरू हो गई है। इसके अलावा मैंने जावा आधारित उदाहरण का परीक्षण किया और यह बिना किसी समस्या के चल रहा था।

js रिकॉर्डिंग उदाहरण निम्न त्रुटि के साथ विफल:

Mixed Content: The page at ' https://ABCDEF ' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://XYZ:8433/'. This request has been blocked; this endpoint must be available over WSS

मैं एक सुरक्षित वेब सॉकेट को इंगित करने के ws_uri चर बदल दिया है:

ws_uri: 'wss://XYZ:8433', 

हालांकि, मैं निम्न त्रुटि अब मिलती है:

WebSocket connection to 'wss://XYZ:8433/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 

कुरेंटो सर्वर को Letencrypt का उपयोग करके HTTPS पर चलाने के लिए सुरक्षित किया गया है।

https://doc-kurento.readthedocs.org/en/latest/mastering/securing-kurento-applications.html

हालांकि, ऊपर के उदाहरण पर यह निम्नलिखित CRT फ़ाइलों को श्रेणीबद्ध करने के लिए पूछता:: मैं सर्वर सुरक्षित करने के लिए निम्न निर्देशों का उपयोग किया है,

cat signing-ca.crt subordinate-ca.crt server.crt > server.pem 

मैं यहाँ उलझन में हूँ, हालांकि बाद से मैं कर सकता उपरोक्त फाइलें नहीं ढूंढें। Letsencrypt मेरे लिए निम्नलिखित .pem फ़ाइलें उत्पन्न करता है:

cert.pem, chain.pem, fullchain.pem, privkey.pem

ऊपर फ़ाइलों में से एक होना चाहिए kurento.json.conf फ़ाइल में इस्तेमाल किया जा?

उत्तर

6

आप .pem फ़ाइलें आप का उल्लेख से एक का उपयोग किया जाना चाहिए - आप की जरूरत नहीं है किसी भी .crt फ़ाइलों को संयोजित करने के लिए, क्योंकि आप प्रमाण पत्र प्राधिकरण के रूप में letsencrypt का उपयोग कर रहे हैं। आप पहले से ही एक certificate chain फ़ाइलें है, और प्रलेखन के रूप में उल्लेख है:

If this PEM certificate is a signed certificate (by a Certificate Authority such as Verisign), then you are done.

(अस्वीकरण: मैं 'letsencrypt की सेवाओं का उपयोग कभी नहीं किया है, इसलिए मैं आम तौर पर बोल रहा हूँ)

letsencrypt द्वारा उत्पन्न फ़ाइलों गैर हैं - इंडिकेटिव (जैसा कि issue on GitHub पर बताया गया है), लेकिन ऐसा लगता है कि fullchain.pem आपको आवश्यक फ़ाइल है।

कॉन्फ़िगर Kurento रूप fullchain.pem उपयोग करने के लिए अपने certificate:

root-ca ==> signing-ca ==> subordinate-ca ==> server

:

"secure": { 
    "port": 8433, 
    "certificate": "fullchain.pem", 
    "password": "" 
} 

रिकॉर्ड के लिए, यदि आप sign your own certificate के लिए गए थे, तो आप cat आदेश निम्नलिखित के रूप में प्रमाणपत्र श्रृंखला बनाने के लिए में प्रयोग किया जाता है |

3

आपकी kurento.json.conf फ़ाइल शायद ठीक है।

मैं थोड़ी देर पहले इस मुद्दे में भाग गया था। समस्या यह है कि जावा सुरक्षा उद्देश्यों के लिए वेबसाइकिल सुरंग को अवरुद्ध कर रहा है। आपको RegisterWebSocketHandlers विधि के भीतर setAllowedOrigins (*) जोड़ने की आवश्यकता है। नोट: यह सुरक्षित नहीं है और उत्पादन वातावरण में उपयोग नहीं किया जाना चाहिए।

@Override 
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { 
registry.addHandler(handler(), "/helloworld").setAllowedOrigins("*"); 
} 

यहाँ Kurento टीम से प्रतिक्रिया के रूप में क्यों यह इस तरह से कोडित है करने के लिए है ... https://groups.google.com/d/msg/kurento/Q5ODV7hkuOc/RnsZKBaXDQAJ

+0

जब से मैं जावास्क्रिप्ट उदाहरण का उपयोग कर रहा में के रूप में: http://doc-kurento.readthedocs.org/en/stable/tutorials/js/tutorial-recorder.html मुझे नहीं लगता कि मैं करने की आवश्यकता है जावा कोड में कुछ भी बदलें। उदाहरण के साथ कोई जावा कोड भी नहीं है। – user496607

+0

आह, क्षमा करें। मुझे लगता है कि आप जावा उदाहरणों का उपयोग कर रहे थे। –

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