2016-02-03 7 views
10

Я пытаюсь запустить пример записи Javascript в Kurento WebRTC, как показано на:Kurento - WebSocket Ошибка подключения

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

У меня есть настройки Kurento на машине Ubuntu и он работает нормально. Служба также началась. Кроме того, я тестировал Java-пример и работал без каких-либо проблем.

В 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 

Сервер kurento защищен для использования через HTTPS с использованием letencrypt. Я использовал следующие инструкции для защиты сервера:

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:

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

Для записи, если бы вы были sign your own certificate, вы бы использовали cat для того, чтобы создать цепочку сертификатов следующим образом:

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

3

Ваш файл kurento.json.conf, вероятно, прекрасен.

Я столкнулся с этим вопросом некоторое время назад. Проблема в том, что java блокирует туннелирование websocket для целей безопасности. Вы должны добавить setAllowedOrigins (*) в метод registerWebSocketHandlers. Примечание: это не безопасно и не должно использоваться в производственной среде.

@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 Я не думаю, что мне нужно изменить что-либо в коде Java. Также не существует Java-кода, сопровождающего этот пример. – user496607

+0

Ах, извините. Я предположил, что вы используете примеры Java. –

Смежные вопросы