Node-request-获取错误“ SSL23_GET_SERVER_HELLO: 未知协议”

我使用的是 Node-request 节点请求模块,定期向一组 URL 发送 GET 请求,有时在某些站点上会得到下面的错误。

Error: 29472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:683

问题是,我并不总是或总是在某些 URL 上得到这个错误,只是有时候。此外,它不能被忽略与“ strictSSL: false”。

I have read that this can be related to me sending SSL requests with the wrong protocol (SSLv2, SSLv3, TLS..). But this doesn't explain why it happens irregularly.

顺便说一下,我正在一个 Win 2008服务器上运行 nodejs。

感谢你的帮助。

208790 次浏览

一些站点使用 SSLv2,或者至少发送一个 SSLv2服务器——您好,您的客户机不会说话,或者没有配置为会说话,SSLv2。你需要在这里做出决策。SSLv2几年前就应该从地球表面消失了,现在仍在使用它的站点是不安全的。然而,如果你要和他们交谈,你只需要在你那边激活它,如果你可以的话。如果可以的话,我会向网站所有者投诉的。

这完全是我的错。

我在一部分代码中使用了标准节点 http.request,这部分代码应该只向 http 地址发送请求。似乎数据库有一个单独的 https 地址,用随机间隔查询。

简单地说,我试图向 https 发送一个 http 请求。

当您通过错误的端口(如80)请求 HTTPS 资源时,您将收到这样的错误消息。所以请确保在请求选项中指定了正确的端口443。

var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';

我得到这个错误,因为我使用的是 require('https'),而我应该使用的是 require('http')

我在连接 Amazon RDS 时得到了这个错误。我检查了服务器状态,当它是一个开发服务器时,CPU 使用量的50% ,没有人使用它。

它以前是工作的,而且连接配置中没有任何更改。 重新启动服务器为我解决了这个问题。

我有这个问题(403错误,每个包) ,我发现没有伟大的在互联网上解决它。 我的 .npmrc文件在我的用户文件夹是错误的和误解。 我把这条 NPMRC 线从

proxy=http://XX.XX.XXX.XXX:XXX/

致:

proxy = XX.XX.XXX.XXX:XXXX

简而言之,

vi ~/.proxy_info


export http_proxy=<username>:<password>@<proxy>:8080
export https_proxy=<username>:<password>@<proxy>:8080


source ~/.proxy_info

希望这对赶时间的人有帮助:)

在我的例子中(网站 SSL 使用 ev 曲线) ,SSL 的问题是通过添加这个选项 EcdhCurve: ‘ P-521: P-384: P-256’来解决的

request({ url,
agentOptions: { ecdhCurve: 'P-521:P-384:P-256', }
}, (err,res,body) => {
...

JFYI 也许这能帮到某人

我得到了这个错误,当使用它在我的火箭聊天通过企业代理与我的 gitlab 通信,

因为,使用的是 https://: 8080,但实际上,它对 http://: 8080有效