gpt4 book ai didi

amazon-web-services - AWS EC2 websocket 通过 https ERR_SSL_VERSION_OR_CIPHER_MISMATCH

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:54 25 4
gpt4 key购买 nike

我无法让我的 websocket 通过 HTTPS 工作。

当我在本地主机上并通过 http 连接到它(并将 node.js 服务器更改回 http)时,一切正常。

但是在生产中,由于混合内容问题,我无法通过 HTTP 连接到它,当我将 node.js 服务器更改为 https 并将 websocket url 更改为 https 时,出现以下错误:

https://ec2-35-166-XXX-XXX.us-west-2.compute.amazonaws.com:8080/socket.io/?EIO=3&transport=polling&t=Lj0QXtq net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH

显然,我在 AWS 的 EC2 实例上的 node.js 服务器没有 SSL 证书,那么我如何让我的网络套接字与运行在 https 上的站点一起工作?

我也尝试用 ws:// 替换 https://,正如我在某处看到的建议,但结果与 HTTP 相同,并且 get 被阻止。

这是我设置套接字的 node.js 代码:

var app = express()
var https = require( "https" ).createServer( app )
var io = require( "socket.io" )( https )
https.listen(8080, "0.0.0.0")

这是我在客户端连接到它的方式:

import io from 'socket.io-client/dist/socket.io.min'
let socket
let socketURL = 'https://ec2-35-166-XXX-XXX.us-west-2.compute.amazonaws.com:8080'
...
socket = io.connect(socketURL)

为了尝试使这项工作正常进行,我将入站安全组设置为允许来自任何地方的所有流量。所以这应该不是问题。我还尝试专门允许来自任何地方的所有 HTTPS 流量。

我还尝试将 https.listen 更改为端口 443,并从 websocket url 中删除 :8080。仍然是同样的错误。

我绝对没有从服务器返回任何响应 header 或任何内容(我假设它甚至没有做到这一点,因为它找不到 AWS 服务器的 SSL 证书),但它让我完全没有想出如何调试它。

如何从 https 网站连接到我在 AWS 上的 websocket?

我真的必须为服务器购买和设置第二个 SSL 证书吗?

最佳答案

显然它确实需要 SSL 证书。购买并设置一个后,https 完全可以正常工作。

关于amazon-web-services - AWS EC2 websocket 通过 https ERR_SSL_VERSION_OR_CIPHER_MISMATCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43243268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com