Azure上的Npm SELF_SIGNED_CERT_IN_CHAIN

时间:2014-02-28 15:23:51

标签: node.js azure npm

由于npm昨天放弃了对自签名证书的支持,我无法再从Windows Azure上运行的npm安装任何软件包。

在我的本地计算机上,我可以通过应用this官方修复来解决问题。 但是,我找不到一种方法来解决我的网站实例上的问题。有任何想法吗?

4 个答案:

答案 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工具处理生成自定义部署脚本,只需从测试仓库中获取.deploymentdeploy.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” 
相关问题