如何解决如何为nodejs aws-sdk配置caCert和代理,“错误:无法获取本地发行者证书”
我已经成功地使用底部代码块配置了代理和证书文件,但是我仍然遇到以下证书错误。我已经在这个问题上停留了一段时间,请您帮我解决这个问题。
{ Error: unable to get local issuer certificate
at TLSSocket.<anonymous> (_tls_wrap.js:1105:38)
at emitNone (events.js:106:13)
at TLSSocket.emit (events.js:208:7)
at TLSSocket._finishInit (_tls_wrap.js:639:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:469:38)
message: 'unable to get local issuer certificate',code: 'NetworkingError',region: 'eu-west-1',hostname: 's3.eu-west-1.amazonaws.com',retryable: true,time: 2020-09-08T14:51:27.596Z } 'Error: unable to get local issuer certificate\n at TLSSocket.<anonymous> (_tls_wrap.js:1105:38)\n at emitNone (events.js:106:13)\n at TLSSocket.emit (events.js:208:7)\n at TLSSocket._finishInit (_tls_wrap.js:639:8)\n at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:469:38)'
操作系统:Windows 7
节点:v8.10.0
npm:5.6.0
openssl:'1.0.2n'
TLS:v1.2
企业网络,位于代理后面
*通过PowerShell命令设置环境变量后,aws-cli可以正常工作
SETX AWS_CA_BUNDLE c:/projects/backend/tls-cabundle.pem
*我已使用以下命令更新了.npmrc文件,也尝试了使用-g标志。
npm配置设置cafile c:/projects/backend/tls-cabundle.pem
npm config set strict-ssl false
const AWS = require("aws-sdk");
const fs = require("fs");
const path = require("path");
const url = require("url");
const HttpsProxyAgent = require("https-proxy-agent");
const certs = [fs.readFileSync(path.join(__dirname,"tls-cabundle.pem"))];
const proxyOptions = {};
Object.assign(proxyOptions,url.parse("http://USERNAME:PASSWORD@primary-proxy.PROXYURL:8080"));
Object.assign(proxyOptions,{
rejectUnauthorized: true,ca: certs,});
const creds = new AWS.Credentials({
accessKeyId: "****************",secretAccessKey: "***********************",sessionToken: "**************************************************************",});
AWS.config.credentials = creds;
AWS.config.update({
region: "eu-west-1",httpOptions: {
agent: new HttpsProxyAgent(proxyOptions),},});
// Create S3 service object
const s3 = new AWS.S3({ apiVersion: "2006-03-01" });
// use aws-sdk S3 service object to list S3 Buckets as per https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property
s3.listBuckets(function (err,data) {
if (err) console.log(err,err.stack);
else console.log(data);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。