我使用的节点请求模块,定时发送GET请求URL集,有时让下面的错误一些网站上。
Error: 29472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:683
问题是,我不总是或总是得到这个错误的一些网址,只是有时。 此外,它不能与“忽略不计strictSSL: false
”。
我已阅读,这可以在发送了错误的协议SSL请求涉及到我(的SSLv2,SSLv3的,TLS ..)。 但是,这并不能解释为什么会发生不规则。
顺便说一句,我是一个双赢2008服务器上运行的NodeJS。
任何帮助表示赞赏。
当您通过错误的端口要求HTTPS资源,如80所以请确保您指定正确的端口,443,在请求选项,你会得到这样的错误消息。
这完全是我不好。
我用标准节点http.request应在其上发送请求来仅HTTP不会忽略的代码的一部分。 好像分贝有将其与随机间隔查询单个HTTPS地址。
简单地说,我试图发送一个HTTP请求到HTTPS。
一些网站都是讲的SSLv2,或者至少发送的SSLv2服务器问候,和你的客户不说话,或者不配置讲,的SSLv2。 你需要在这里做一个决策。 的SSLv2应该从地球表面年前消失,并且仍然使用它的网站是不安全的。 但是,如果你必须跟他们,你就必须在你的结束,来启用它,如果你能。 如果可以的话我会投诉到网站所有者虽然。
我有这个问题(403误差为每个包),我没有发现任何在互联网极大地解决这个问题。 我.npmrc
我的用户文件夹内的文件是错误和误解。 我改变了这种npmrc专线
proxy=http://XX.XX.XXX.XXX:XXX/
至 :
proxy = XX.XX.XXX.XXX:XXXX
var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';
我因为我用了这个错误require('https')
我应该一直在使用require('http')
我在连接到Amazon RDS得到这个错误。 我检查服务器状态CPU使用率的50%,而这是一个开发服务器,没有人在使用它。
这是工作之前,并没有在连接配置已更改。 重新启动服务器解决了该问题对我来说。
因此,在短期,
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,也许这将帮助别人
这听起来像你只需要有一些重试逻辑,所以间歇性错误不耽误工作。
function faultTolerantRequest (url, trys, retryTime, cb) {
var attempts = 0;
function requestFinished (err, res, body) {
if (err) {
if (attempts < trys) {
return setTimeout(tryRequest, retryTime);
}
return cb(err);
}
return cb(err, res, body);
}
function tryRequest () {
attempts++;
return request(url, requestFinished);
}
return tryRequest();
}