Javascript Kurento-WebSocket连接失败

Javascript Kurento-WebSocket连接失败,javascript,security,ssl,webrtc,kurento,Javascript,Security,Ssl,Webrtc,Kurento,我正在尝试运行Kurento WebRTC的Javascript录制示例,如中所示: 我已经在Ubuntu机器上安装了Kurento,它运行正常。服务也已启动。此外,我测试了基于Java的示例,它运行时没有任何问题 js录制示例失败,错误如下: 混合内容:位于“”的页面通过HTTPS加载,但 试图连接到不安全的WebSocket终结点 “ws://XYZ:8433/”。此请求已被阻止;此终结点必须是 可通过WSS访问 我将ws_uri变量更改为指向安全web套接字: ws_uri: 'wss:

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

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

js录制示例失败,错误如下:

混合内容:位于“”的页面通过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运行。我使用了以下说明来保护服务器:

但是,在上面的示例中,它要求连接以下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文件中是否应使用上述文件之一

您的kurento.json.conf文件可能没有问题

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

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
 registry.addHandler(handler(), "/helloworld").setAllowedOrigins("*");
}
以下是Kurento团队的回应,解释了为什么它是这样编码的。。。

您已经有了一个文件,正如文档中提到的:

如果此PEM证书是一个已签名的证书(由证书颁发机构,如Verisign颁发),则完成此操作

Kurento需要私钥和完整链,但使用letsencrypt时,这些文件是单独生成的。您可以将
fullchain.pem
和您的
privkey.pem
cat privkey.pem fullchain.pem>服务器.pem

配置Kurento以使用新文件
server.pem
作为其
证书

"secure": {
  "port": 8433,
  "certificate": "server.pem",
  "password": ""
}
对于记录,如果要,您将使用
cat
创建证书链,如下所示:

根ca==>签名ca==>从属ca==>服务器


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


因为我使用的是javascript示例,如中所示:我认为我不需要更改Java代码中的任何内容。示例中也没有Java代码。啊,对不起。我假设您使用的是Java示例。