[英]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.pem
和privkey.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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.