73

我正在使用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”忽略它。

我已经读到这可能与我使用错误的协议(SSLv2、SSLv3、TLS ..)发送 SSL 请求有关。但这并不能解释为什么它会不规律地发生。

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

任何帮助表示赞赏。

4

10 回答 10

114

当您通过错误的端口(例如 80)请求 HTTPS 资源时,您会收到此类错误消息。因此,请确保您在请求选项中指定了正确的端口,443。

于 2013-08-09T08:32:02.863 回答
18

这完全是我的错。

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

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

于 2013-04-22T13:23:41.550 回答
7

我收到此错误是因为我正在使用require('https')我应该使用的地方require('http')

于 2015-08-19T15:01:26.463 回答
4

一些站点正在使用 SSLv2,或者至少发送 SSLv2 server-hello,而您的客户端不使用或未配置为使用 SSLv2。您需要在此处做出政策决定。SSLv2 应该在几年前就从地球上消失了,仍然使用它的网站是不安全的。但是,如果您必须与他们交谈,您只需在最后启用它,如果可以的话。如果可以的话,我会向网站所有者投​​诉。

于 2013-03-14T22:09:20.643 回答
4

我遇到了这个问题(每个包都有 403 错误),我在互联网上没有找到很好的解决方法。 .npmrc的用户文件夹中的文件是错误的并且被误解了。 我将这条 npmrc 行从

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

到 :

proxy = XX.XX.XXX.XXX:XXXX
于 2018-01-17T16:37:29.840 回答
2
var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';
于 2014-01-10T03:31:06.367 回答
0

连接到 Amazon RDS 时出现此错误。当它是开发服务器并且没有人使用它时,我检查了服务器状态 50% 的 CPU 使用率。

它以前工作过,连接配置中没有任何变化。重新启动服务器为我解决了这个问题。

于 2017-02-24T14:26:30.390 回答
0

所以简而言之,

vi ~/.proxy_info

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

source ~/.proxy_info

希望这可以帮助匆忙的人:)

于 2018-09-05T06:24:22.500 回答
0

在我的情况下(网站 SSL 使用 ev 曲线)通过添加此选项ecdhCurve: 'P-521:P-384:P-256'解决了 SSL 的问题

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

JFYI,也许这会对某人有所帮助

于 2019-02-27T18:21:55.673 回答
0

我在我的 Rocketchat 上使用它通过企业代理与我的 gitlab 通信时遇到了这个错误,

因为,使用的是 https://:8080 但实际上,它适用于 http://:8080

于 2019-08-28T02:01:51.577 回答