问题 如何配置NPM以信任HTTPS代理的防火墙发行者?


我试图在公司防火墙后面的环境中使用NPM。所述防火墙拦截所有https流量并使用其自己的CA签名...是否有办法“信任”此CA以便NPM实际可以工作?


1760
2018-06-10 22:09


起源

我意识到这可能更适合另一个StackExchange站点,但鉴于它特定于特定的开发平台,我觉得这是一个更合适的地方。 - Tracker1


答案:


有更好的方法来配置npm以信任由特定CA颁发的证书。

npm config -g set cafile /path/to/myCA.cert

这会将此CA(可能是您公司的自签名证书)添加到npm的可信CA.使用此解决方案,您可以获得SSL密钥验证和添加自己的CA实体的好处。


9
2018-06-28 14:35



值得注意的是,如果你被迫通过内部代理,那么证书验证无论如何都是毫无意义的...... - Tracker1
myCA.cert的格式是什么? pem,jks,...? - dokaspar
值应采用PEM格式 - Josep Prat
这个答案 提供更多细节和示例 cafile 配置属性。 - Paul


注意:通常不应使用此解决方案,请参阅Josep上面的答案以及 这个答案 来自评论。这个问题和答案都在咖啡馆的选择之前,iirc。此外,在我的情况下,它是公司代理的背后,无论如何都要自我签名。

旧的/不推荐的答案如下。


找到解决方案......(忽略SSL Certs)

npm config -g set strict-ssl false

谢谢 这个帖子 在谷歌组。


5
2018-06-10 22:15



警告:我相信这个解决方案会导致npm接受任何证书。如果有一个选项告诉npm只信任特定证书会更好。 - Scott Marchant
@ScottMarchant足够公平..或者就此而言,能够添加内部CA链...说,上面的解决方案适用于给定的环境。我在git和其他一些类似问题上遇到了同样的问题。 - Tracker1