Node.js nodejs https请求中的证书问题

Node.js nodejs https请求中的证书问题,node.js,https,ssl-certificate,Node.js,Https,Ssl Certificate,我在发出https get请求时出现以下错误 { Error: write EPROTO 101057795:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:openssl\ssl\s23_clnt.c:802: at _errnoException (util.js:992:11) at WriteWrap.afterWrite [as oncomplete] (net.js:86

我在发出https get请求时出现以下错误

{ Error: write EPROTO 101057795:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:openssl\ssl\s23_clnt.c:802:
at _errnoException (util.js:992:11)
at WriteWrap.afterWrite [as oncomplete] (net.js:864:14) code: 'EPROTO', errno: 'EPROTO', syscall: 'write' }
我正试图向不需要代理的公司内部资源发出请求

const request = require('request')
var token= myToken
request({
  method: 'post',
  url: 'https://myURL',
  data: {
    myData
  },
  headers: { 'Authorization': 'Bearer myToken' },
  agentOptions: {
    rejectUnauthorized: false,
  },
}, function (error, response, body) {
if(error){
  console.log('Error: ', error)
} else {
  console.log(body)
}
})
我的.npmrc中也有严格的ssl=false

我所注意到的是,我可以毫无问题地拨打相同的电话

curl -k1 -XPOST -H "Authorization: Bearer %TOKEN%" "https://%URL% -d @data,json -H "content-type: application/json"
-curl中的k1选项似乎解决了证书的问题

我在JavaScript中做错了什么?

请求({
方法:“post”,
网址:'https://myURL',
数据:{
我的数据
},
标头:{“授权”:“承载者myToken”},
拒绝:错误,
},函数(错误、响应、正文){
如果(错误){
console.log('错误:',错误)
}否则{
控制台日志(正文)
}
});
请求({
方法:“post”,
网址:'https://myURL',
数据:{
我的数据
},
标头:{“授权”:“承载者myToken”},
拒绝:错误,
},函数(错误、响应、正文){
如果(错误){
console.log('错误:',错误)
}否则{
控制台日志(正文)
}

});这原来是节点版本8中的一个bug。我终于找到了解决办法-

需要在代码中添加以下内容:


require(“tls”).DEFAULT\u ECDH\u CURVE=“auto”

这原来是节点版本8中的一个bug。我终于找到了解决办法-

需要在代码中添加以下内容:


require(“tls”).DEFAULT\u ECDH\u CURVE=“auto”

两个建议都没有帮助-仍然存在握手失败。您在哪里设置了NODE\u tls\u REJECT\u UNAUTHORIZED=0?文件中
const request=require(“request”)之前的第一行
这两个建议都没有帮助-握手仍然失败。您在哪里设置了NODE\u TLS\u REJECT\u UNAUTHORIZED=0?文件中
const request=require('request')之前的第一行。
谢谢。。这解决了我的问题,谢谢。。这解决了我的问题