节点 16:npm 拒绝受信任的自签名证书

Node 16: npm rejects trusted self-signed certificate

我正在尝试在代理后面使用 npm install,该代理使用自定义 CA 证书拦截 HTTPS 连接。我正在使用节点 16。

命令总是失败:

3023 error code SELF_SIGNED_CERT_IN_CHAIN
3024 error errno SELF_SIGNED_CERT_IN_CHAIN
3025 error request to https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz failed, reason: self signed certificate in certificate chain

我已将 CA 证书标记为受系统信任 -- curl -vvv -I https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz 成功且没有证书验证错误。

我也导出了NODE_EXTRA_CA_CERTS=/path/to/my-ca-cert.crt。我认为这是 Node 12 的关键,但似乎不再起作用了。

我也试过通过 --use-openssl-ca 但没有发现任何变化。

我不想禁用 所有 证书验证,我只想 npm 信任我的 CA。

这使 npm 信任系统信任的证书。

export npm_config_cafile=/etc/ssl/certs/ca-certificates.crt