繁体   English   中英

Kurento - WebSocket连接失败

[英]Kurento - WebSocket Connection failed

我正在尝试运行Kurento WebRTC的Javascript录制示例,如下所示:

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

我在Ubuntu机器上安装了Kurento,运行正常。 该服务也已启动。 此外,我测试了基于Java的示例,它运行时没有任何问题。

js录制示例失败,出现以下错误:

混合内容:' https:// ABCDEF '页面是通过HTTPS加载的,但是尝试连接到不安全的WebSocket端点'ws:// XYZ:8433 /'。 此请求已被阻止; 此端点必须通过WSS可用

我将ws_uri变量更改为指向安全的Web套接字:

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

但是,我现在收到以下错误:

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

使用letsencrypt保护kurento服务器以通过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文件中使用上述文件之一?

您已有证书链文件,并且文档中提到:

如果此PEM证书是签名证书(由证书颁发机构,如Verisign),那么您就完成了。

Kurento需要私钥和完整链,但这些文件在使用letsencrypt时是单独生成的。 您可以使用cat privkey.pem fullchain.pem > server.pem连接fullchain.pemprivkey.pem

配置Kurento使用新文件server.pem作为其certificate

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

为了记录,如果您要签署自己的证书 ,您将使用cat来创建证书链,如下所示:

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

你的kurento.json.conf文件可能没问题。

我不久前遇到了这个问题。 问题是java出于安全目的阻止了websocket隧道。 您需要在registerWebSocketHandlers方法中添加setAllowedOrigins(*)。 注意:这不安全,不应在生产环境中使用。

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

以下是Kurento团队对此进行编码的响应... https://groups.google.com/d/msg/kurento/Q5ODV7hkuOc/RnsZKBaXDQAJ

请确保已安装并正在运行Kurento Media Server。

https://github.com/Kurento/kurento-media-server

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM