NodeJS-HTTPS POST请求不适用于Got客户端

时间:2020-10-27 17:05:12

标签: node.js https

我正在尝试使用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

我正在关注this文档。

我确认证书和密钥是好的,因为邮递员和curl的要求相同。如果我使用其他Request之类的Javascript客户端,它甚至可以工作。

有人知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

解决了这个问题。我使用的是旧版本的 Got(9.6.0)。将我的 Got 版本升级到 11.8.0 后,它运行良好。