由于npm昨天放弃了对自签名证书的支持,我无法再从Windows Azure上运行的npm安装任何软件包。
在我的本地计算机上,我可以通过应用this官方修复来解决问题。 但是,我找不到一种方法来解决我的网站实例上的问题。有任何想法吗?
答案 0 :(得分:11)
自昨天(2014年2月27日)起,NPM不再支持自签名证书:http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more
解决方案:
升级您的npm版本
npm update -g
- 或 -
告诉您当前版本的npm使用已知的注册商
npm config set ca =""
- 或---
作为最后的解决方案我不建议将此用于安全问题,使用SSL始终更安全,切换注册表以使用HTTP而不是HTTPS:
npm config set registry =" http://registry.npmjs.org/"
答案 1 :(得分:10)
在我们更新Azure上的NPM之前,解决此问题的一种简单方法是创建自定义部署脚本(info here)。
以下是演示自定义内容的示例回购:https://github.com/davidebbo-test/AzureNpmCertWorkaround。具体来说,请查看使用npm config set ca ""
解决方法的this commit。
如果您不想使用Azure工具处理生成自定义部署脚本,只需从测试仓库中获取.deployment
和deploy.cmd
,然后将其提交到根目录你的回购。
答案 2 :(得分:3)
您无法运行npm install npm -g
。被遗忘的npm install
是问题,还记得吗? npm的博客文章评论中的一个很好的提示,就像一个魅力:
npm config set strict-ssl false
npm install npm -g
npm config set strict-ssl true
您可能需要使用sudo
。
答案 3 :(得分:0)
错误名称: 错误:SELF_SIGNED_CERT_IN_CHAIN
要克服此错误需要遵循的步骤:
1)将Node.js和npm更新为最新版本
2)按顺序运行这三个命令。
-npm config set strict-ssl false
-npm update npm –g
-npm config set strict-ssl true
3)使用以下命令在npm配置中设置属性代理和https-proxy:
-npm config set proxy “http://<proxy-name>:8080”
-npm config set https-proxy “http://<proxy-name>:8080”