复现方法如下:
const axios = require("axios");
axios.post("https://dnspod.cn/Info.Version", "login_token=LOGIN_TOKEN&format=json", {'Content-Type': 'application/x-www-form-urlencoded'}).catch((err) => { console.log(err.toString());})
提示错误:
Error: write EPROTO 140286343113664:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:802:
应该不是环境的问题,换了好几台机器都这样,请问大家能复现吗
1
runtu2019 2019-05-26 21:35:36 +08:00
禁用 https 验证,还有 User-Agent 是按照它文档里规定写的吗?
|
2
lihuimail 2019-05-26 21:37:05 +08:00 via Android
ssl 版本问题
|
3
t123yh OP @runtu2019 跟 User-Agent 无关,SSL 握手的时候就死掉了。https 关掉之后会重定向到 https,绕不开
|
4
t123yh OP @lihuimail 换了好几台机器了,OpenWrt、Ubuntu、Arch 都不行,应该是 DNSPod 那边配置出问题了
|
5
phy25 2019-05-27 07:34:52 +08:00
并不能复现,我加了 done 可以吐响应内容出来。应该发一下 NodeJS 的版本以及有可能的话 OpenSSL 的版本。
另外请看 DNSPod 后台通知:“为提升整体业务安全等级,遵循最新行业标准,近期 DNSPod 会集中对网站的 SSL 证书进行升级。升级结束后,我们将会支持 HTTP/2 协议,TLS v1.2、TLS v1.3 协议。不再支持低于 TLS v1.2 版本( TLS v1.1、TLS v1.0 等)老旧协议。DNSPod API 旧的“用户名 + 密码”的鉴权方式已下线,请升级为更安全的 API Token 的方式。另请确保调用接口 url 为 https://dnsapi.cn ,避免 API 操作不当影响使用。” |