小编jse*_*mig的帖子

Node JS get 请求,接收 SSL 警报编号 40,适用于curl 和 python

我们正在将一些后端迁移到节点,并遇到了以下问题(在 Linux 和 Mac 上)。这是我们的卷曲效果:

curl --insecure --cert-type pem --cert CERT.pem  "https://USER:PASS@www.website.com/info"
Run Code Online (Sandbox Code Playgroud)

在 python 中,我们使用 request 库(它也可以工作):

    import requests
    r = requests.get('https://USER:PASS@www.website.com/info', auth=('USER', 'PASS'), cert='CERT.pem')
Run Code Online (Sandbox Code Playgroud)

正如我提到的,我们在 JS 中进行了尝试,但没有成功:

const request = require('request')
const options = {
    url: "https://www.website.com/info",
    auth: { 
        'user': 'USER', 
        'pass': "PASS",
        'sendImmediately': false
    },
    insecure: true,
    cert: fs.readFileSync("CERT.pem")
};


request.get(options, (err, res, body) => {
    if (err) { return console.log(err); }
    console.log(res)
    console.log(body.url);
    console.log(body.explanation);
    resolve(JSON.parse(body.explanatio))
});
Run Code Online (Sandbox Code Playgroud)

我们得到以下结果:

Error: write EPROTO 4514557376:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1536:SSL alert number …
Run Code Online (Sandbox Code Playgroud)

javascript openssl request node.js

8
推荐指数
0
解决办法
1849
查看次数

标签 统计

javascript ×1

node.js ×1

openssl ×1

request ×1