10

我正在尝试运行 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

kurento 服务器使用letsencrypt 被保护在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 文件中是否应该使用上述文件之一?

4

3 回答 3

6

您已经有一个证书链文件,并且正如文档所述:

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

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

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

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

作为记录,如果您要签署自己的证书,您将使用cat以下方式创建证书链:

root-ca ==> 签名-ca ==> 从属-ca ==> 服务器

于 2016-02-13T12:21:15.650 回答
3

您的 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

于 2016-02-04T19:21:43.363 回答
-1

请确保 Kurento 媒体服务器已安装并正在运行。

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

于 2016-04-26T15:15:43.347 回答