Node.js使用https请求时,出现“SSL23_GET_SERVER_HELLO”错误

Posted ReggieQiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js使用https请求时,出现“SSL23_GET_SERVER_HELLO”错误相关的知识,希望对你有一定的参考价值。

Node.js程序改造成https请求,遇到了另外一个问题

错误提示如下:

SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/s23_clnt.c:772

经过排查错误发现是:Node.js版本太旧默认使用TLS1.1协议请求,解决这个问题有两种方法:

1.手动指定成TLS1.2协议,secureProtocol参数设置成TLSv1_2_method

var https = require(‘https‘);

var options = {
  hostname: ‘www.yourwebiste.com‘,
  port: 443,
  method: ‘GET‘,
  path: ‘/validate‘,
  secureProtocol: ‘TLSv1_2_method‘,
};

var req = https.request(options, function (res) {
  res.on(‘data‘, function (d) {
    process.stdout.write(d);
  });
});
req.end();

req.on(‘error‘, function (e) {
  console.error(e);
});

2.升级Node.js到最新的稳定版本

以上是关于Node.js使用https请求时,出现“SSL23_GET_SERVER_HELLO”错误的主要内容,如果未能解决你的问题,请参考以下文章

node.js 贝宝 https 请求

HTTP 服务器可以接收 HTTPS 请求(node.js)吗?

使用HTTPS GET请求的结果[Node.js] [重复]

Node.js https.post 请求 [重复]

在 Node.js 中使用 axios 发布表单数据

node.js 请求获取重定向链