2017-07-13 81 views
1

我正面临客户端https请求的问题。nodejs - 证书链中的错误自签名证书

一个片段可以是这样的:

var fs = require('fs'); 
var https = require('https'); 

var options = { 
    hostname: 'someHostName.com', 
    port: 443, 
    path: '/path', 
    method: 'GET', 
    key: fs.readFileSync('key.key'), 
    cert: fs.readFileSync('certificate.crt') 
} 

var requestGet = https.request(options, function(res){ 
    console.log('resObj', res); 
} 

我得到的是错误:在自我证书链签名证书。

当我使用邮递员时,我可以导入客户端证书和密钥并且没有任何问题地使用它。有没有解决方案?我还希望看到邮递员如何处理证书和工作。

回答

3

您需要将NODE_TLS_REJECT_UNAUTHORIZED='0'作为环境变量添加。

+0

如果我理解正确的话,设置在服务器ENV_VAR将只禁用验证的过程,这是我不想做。我只需要做邮递员的工作,即以某种方式导入证书。 – kDoyle

+0

是你在这里给出的值:'''cert:fs.readFileSync('certificate.crt')'''cert的绝对位置? –

+0

还有两件事你必须考虑,CN需要与你正在尝试使用的域相同,2你的openssl包需要1.0.2+或者你可以使用免费的CA https:// letsencrypt.org/ –

0

你可以写命令NPM配置设置严格的SSL =假

相关问题