我遇到客户端https请求的问题。
片段可以如下所示:
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); }
我得到的是错误:证书链中的自签名证书。
使用邮递员时,我可以导入客户端证书和密钥,并且可以毫无问题地使用它。有没有可用的解决方案?我还希望对邮递员如何处理证书和工作方式有所了解。
根据您的问题,我想您正在使用SSL通讯的自签名证书进行开发。
如果是这种情况,请NODE_TLS_REJECT_UNAUTHORIZED='0'在您正在运行节点的任何地方或直接使用NODE_TLS_REJECT_UNAUTHORIZED='0' node app.js
NODE_TLS_REJECT_UNAUTHORIZED='0'
NODE_TLS_REJECT_UNAUTHORIZED='0' node app.js
这指示节点允许不信任的证书(不信任=未由证书颁发机构验证)
如果您不想设置环境变量或需要对多个应用程序执行此操作,则npm具有配置,您可以使用以下命令进行设置 npm config set strict- ssl=false
npm config set strict- ssl=false
我不建议在生产中设置此环境变量。使用来自letencrypt.org之类的受信任提供商的免费SSL证书