访问托管在其他端口

时间:2016-06-08 20:24:41

标签: node.js ssl https websocket certificate

我在端口80(http)和443(https)上设置了express服务器node.js。与该服务器分开,我在一个单独的端口8000中设置了一个websocket服务器:

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port: 8000});

快递服务的网站必须连接到那些服务才能工作。问题是:通过http访问我的网站工作正常,但是,从https,我得到:

index.js:100 Mixed Content: The page at 'https://example.com/' was 
loaded over HTTPS,  but attempted to connect to the insecure 
WebSocket endpoint 'ws://my_sites_ip:8000/'. This request has been 
blocked; this endpoint must be available over WSS.

为什么我收到此错误?这与websocket服务器在与http服务器不同的进程/端口这一事实有什么关系吗?我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:7)

错误告诉你该怎么做。使用https时使用websocket和wss

看看这篇文章 html5 Websocket with SSL WebSocket连接通过HTTP或HTTPS握手开始。通过HTTP访问页面时,您可以使用WS或WSS(WebSocket安全:WS over TLS)。但是,当您的网页通过HTTPS加载时,您只能使用WSS - 浏览器不允许"降级"安全