【问题标题】:Run node.js as secure server and use webRTC when IIS is using port 443?当 IIS 使用端口 443 时,将 node.js 作为安全服务器运行并使用 webRTC?
【发布时间】:2017-08-21 16:06:17
【问题描述】:

我正在尝试使用 webRTC 将音频从客户端流式传输到 Node.js。 问题是:webRTC 不适用于 HTTP,只能用于 HTTPS。所以 - 我的 IIS 正在使用这个端口。我尝试建立我的 Node.js 来监听 443 端口:

第一次尝试:使用 https.createServer,通过端口 9001:

Node.JS 脚本:

var options = {
    key: fs.readFileSync('../cert/key.pem'),
    cert: fs.readFileSync('../cert/server.crt')

};
var httpsserver = https.createServer(options).listen(443);
var server = binaryServer({ server: httpsserver, port: 443 });

客户端脚本:

client = new BinaryClient('ws://example.com:443');

我的节点脚本中出现此错误,所以我的第一个问题是:这是因为我的 IIS 正在使用端口 443?

投掷者; // 未处理的“错误”事件 ^

错误:在 Object.exports._errnoException 处监听 EACCES 0.0.0.0:443 (util.js:1018:11) 在exports._exceptionWithHostPort (util.js:1041:20) 在 Server._listen2 (net.js:1249:19)

遇到此错误,我尝试使用不同的端口 (9001)。


第二次尝试:使用 https.createServer,通过端口 9001:

客户端脚本:

client = new BinaryClient('ws://example.com:9001');

当我尝试从客户端连接到 9001 上的 node.js 服务器时,因为站点地址是 https://example.com,我在 客户端 中收到此错误:

混合内容:页面位于 'https://example.com/page.aspx' 已通过 HTTPS 加载,但尝试连接到不安全的 WebSocket 端点 'ws://example.com:9001/'。该请求已 受阻;此端点必须在 WSS 上可用。

因为错误提到使用wss://,所以我尝试了以下。


第三次尝试:使用 WSS://,通过端口 9001:

所以,我将客户端切换到WSS://

client = new BinaryClient('wss://example.com:9001');

然后,在 客户端 中,我收到此错误:

到“wss://example.com:9001/”的 WebSocket 连接失败:错误 连接建立:net::ERR_CONNECTION_CLOSED

假设我的 IIS 使用端口 443,我如何在 srcure 端口上运行我的 node.js 服务器,并且仍然能够安全地连接到客户端并使用 webRTC?

【问题讨论】:

    标签: node.js https streaming webrtc


    【解决方案1】:

    如果您已经有一个 Web 服务器正在运行并为安全请求提供服务,那么通常所做的就是让该 Web 服务器充当您的 Node 应用程序的反向代理。这样您就不需要处理证书,也不用担心端口冲突。

    有关详细信息,请参阅此答案和链接:

    【讨论】:

      【解决方案2】:

      Chrome 仅允许来自安全来源的 gUM/WebRTC,即:页面 url 应该是 https 并且来自该页面的所有后续请求都应该是安全的。

      所以我们必须使用 wss:// 作为 websocket url

      您似乎正在使用自签名证书, 通过在浏览器选项卡中输入 URL https://example.com:9001 手动允许证书。

      打开页面后,您应该得到一个错误页面,然后您需要通过单击高级 -> 继续来允许。

      如果页面没有加载,那么你需要查看防火墙或者你的服务器的 ip/dns 是否可以从浏览器访问。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-25
        • 1970-01-01
        • 2016-10-02
        • 2021-04-11
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多