我已经创建了一个简单的WebRTC应用程序,可以很好地测试本地主机;但是,WEBRTC没有多大用处,除非您有一个安全的连接,因为除非您有HTTPs,否则浏览器现在不会运行GetUserMedia,所以我正在为SSL“尝试”升级它。下面是我的两个应用程序并排的屏幕截图,一个安全(不工作),另一个不安全(工作)

正如您在上面所看到的,本地主机‘连接’,而HTTPs‘不能建立连接’。我对SSL还不熟悉,所以这可能是一个简单的问题。只是希望能有更多人关注这件事。
我知道我的HTTPS服务器的Javascript是安全连接的,见下图

下面是我的代码片段。如能提供任何帮助,将不胜感激:
SSL客户端- Client.JS
var connection = new WebSocket('wss://localhost:8443'),
name = "";非安全客户端- Client.JS
var connection = new WebSocket('ws://localhost:8888'),
name = "";非安全JS服务器- index.JS
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({ port: 8888 }),
users = {};
wss.on('connection', function (connection) {
connection.on('message', function (message) .....安全JS服务器- SSLindex.JS
Var https = require('https'),
fs = require('fs'),
express = require('express'),
app = express();
var wss = https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt'),
ca: fs.readFileSync('ca.crt'),
requestCert: true,
rejectUnauthorized: false
}, app).listen('8443', function() {
console.log("Secure Express server listening on port 8443");
});
app.use("/", function(req, res, next)
{
res.send("index.js is working!");
});发布于 2017-05-11 05:33:13
对于开发人员来说,方便铬将把localhost视为安全的来源。
如果您使用的是http://localhost或ws://localhost,则不涉及SSL,因此它在右侧截图中运行得很好。
但是对于https或wss,浏览器将验证SSL证书颁发机构。
解决wss://localhost:8443/的websocket连接问题
临时操作:打开https://localhost:8443/ url并通过单击Adavced =>来允许浏览器异常
实际解决方案:为节点服务器(node.kali2016.com)分配域名,并使用授权的SSL证书配置节点。然后替换
var connection = new WebSocket('wss://localhost:8443')
使用
var connection = new WebSocket('wss://yourdomainname:8443')
发布于 2017-10-22 15:02:24
通过使用服务器的IP地址而不是本地主机,我的EasyRTC页面能够在HTTPS上工作。
所以:
https://localhost:8443/不起作用。返回的连接关闭错误。
https://192.168.0.113:8443/工作正常,并按其应有的方式显示网页。
这可能也适用于其他人。
https://stackoverflow.com/questions/43901648
复制相似问题