Socket.io SSL 错误

Дан*_*мия 5 sockets ssl ports node.js socket.io

我正在努力保护我的网站

一切正常,直到我最终安装了 SSL 证书(来自 CloudFlare,不是自签名证书)

所以问题是:当我通过 HTTP 打开我的网站时 - 一切正常,但是当我通过 https 打开它时 - 网站失去了与主机的连接(它需要工作)

在控制台中,我可以看到:

socket.io-1.4.5.js:1 获取https://188.226.131.219:8080/socket.io/?EIO=3&transport=polling&t=LlI-URk net::ERR_CONNECTION_CLOSED

如果我理解正确,这里是端口问题。使用 HTTP 端口 80 没问题,使用 https 端口 443 有问题。有什么办法可以交换端口吗?

vse*_*nko 1

看起来您的前端位于http://188.226.131.219并且您在http://188.226.131.219:8080上有一个 WebSocket 服务。

您已将前端配置为使用 SSL 证书,并且可以通过https://188.226.131.219访问它,但是指向您的 WebSocket 服务的链接可能取决于用于加载前端的协议和主机,因此如果您从https://188.226.131.219加载它/188.226.131.219,那么前端中的 JS 将尝试连接到https://188.226.131.219:8080,但是您的 WebSocket 服务会侦听 HTTP 请求,而不是 HTTPS 请求。

首先,您需要将 WebSocket 服务设置为也使用 SSL 证书,但在不同的端口(例如 8443)上,然后您必须修改您的前端,使其能够了解其加载方式(使用 HTTP 或 HTTPS) )并找出 WebSocket 服务的正确端口。