node.js-不带SS的npm安装

我有一个Ubuntu VM,无法连接到使用ssl(即https)的站点。 如果URL以http开头,它可以从Internet成功下载工件。

npm install将通过https下载依赖项。 反正有通过http下载吗?

Ken Hirakawa asked 2019-11-12T00:45:21Z
3个解决方案
135 votes

尝试使用以下命令将注册表更改为http版本,而不是默认的https版本

npm config set registry http://registry.npmjs.org/
colinf answered 2019-11-12T00:58:58Z
13 votes

正如conlinf所说,以下应该起作用:

http

现在,我要说的是,您还应该考虑不使用ssl进行下载就可以进行中间人攻击。 这只是向将要阅读该帖子的人添加警告。

如果您是一个单独的开发人员,则直接在http上下载应该不会有很多麻烦,但是如果我想使用node.js攻击一家公司,我会考虑通过npm传送恶意代码...而且在没有ssl的情况下进行此类攻击会非常麻烦 更轻松。

Creasixtine answered 2019-11-12T00:59:41Z
9 votes

经过反复试验,我发现除上述所有内容外,我还需要将npm cache clean --force设置为http proxy的值。

所以最终的.npmrc文件看起来像

proxy=http://username:password@proxy.address:port/
https-proxy=http://username:password@proxy.address:port/
strict-ssl=false
registry=http://registry.npmjs.org/

请注意,代理和https-proxy是相同的!

有关更多信息,请参见对此线程的评论:

[https://github.com/npm/npm/issues/8034]

我也更新npmrc后运行了npm cache clean --force,但效果不佳,但我不确定是否需要。

希望有所帮助。

phyatt answered 2019-11-12T01:00:39Z
translate from https://stackoverflow.com:/questions/8874363/npm-install-without-ssl