node.js - NodeJS - HTTPS POST请求不适用于Got客户端
问题描述
我正在尝试使用 Got 客户端发出 HTTPS Post 请求。端点需要带有客户端证书的 TLS。这是我的请求的样子:
await got.post('https://example.com/some-entity/', {
json: requestPayload,
headers: {
Authorization: 'some token'
},
https: {
certificate: fs.readFileSync('sslfile.cert.pem'),
key: fs.readFileSync('sslfile.key.pem'),
passphrase: 'passphrase',
rejectUnauthorized: false // only for local dev. would be true in prod
},
responseType: 'json'
});
但我收到以下错误:
write EPROTO 139745222879040:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1544:SSL alert number 40\n
我正在关注这个Got 文档。
我已经确认证书和密钥是好的,因为邮递员和 curl 的请求相同。如果我使用不同的 Javascript 客户端(如Request
.
有人知道我在这里做错了什么吗?
解决方案
想通了这个问题。我使用的是旧版本的 Got(9.6.0)。将我的 Got 版本升级到 11.8.0 后它运行良好。
推荐阅读
- mapbox-gl-js - 使用 onclick 操作创建点时,是否可以创建与另一个 lineString 垂直的 lineString?
- python - 您需要为 bootstrap_servers (Kafka Python) 和 zookeeper.connect (ZooKeeper) 指定哪些节点?
- java - 如何解决java.text.ParseException:无法解析的日期:“Sat Sep 14 2019 00:00:00 GMT+0530(印度标准时间)”?
- r - R 在有条件的情况下滞后日期
- php - 如何在 PHP 中设置带有安全标志的 cookie?
- outlook - Microsoft Office Professional Plus 2019 - Outlook - notificationMessages.replaceAsync 不工作
- python - 为什么我不能在 PYTHON 类中使用全局变量?
- html - btn 点击时的图像缩放
- javascript - Web 蓝牙 API 错误:没有匹配 UUID 的服务
- python - Pandas pivot_table:无法实现正确的格式