Elastic Beanstalk for NodeJS上的SELF_SIGNED_CERT_IN_CHAIN错误

我很清楚这个问题的根源,因为npm在他们的博客上写道: http : //blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more

解决scheme是要么:

1)升级你的npm版本

npm install npm -g

要么

2)告诉你当前版本的npm使用已知的注册商

npm config set ca ""

但是,这两种解决scheme都不适用于Elastic Beanstalk。 npm链接到已安装节点的版本(v0.10.10),并且不可能告诉当前的npm版本使用已知的注册服务器。

我为NodeJS运行一个64位Amazon Linux实例

.ebextensions中添加此命令不会有帮助:

 container_commands: 01_npm-fix: command: /opt/elasticbeanstalk/node-install/node-v0.10.10-linux-x64/bin/npm config set ca "" 

任何人都想出了这个解决scheme?

       

网上收集的解决方案 "Elastic Beanstalk for NodeJS上的SELF_SIGNED_CERT_IN_CHAIN错误"

我也为此而挣扎。 修复: https : //gist.github.com/anonymous/fb32a4b053fe121b0b03 。 在container_commands应用时, npm install已经运行。

今天有同样的问题。 我通过设置我的全局npmrc文件来修复它,如下所示:

 02_no-cert: command: "rm -rf /opt/elasticbeanstalk/node-install/node-v0.10.21-linux-x64/etc && mkdir /opt/elasticbeanstalk/node-install/node-v0.10.21-linux-x64/etc && echo 'ca = ' > /opt/elasticbeanstalk/node-install/node-v0.10.21-linux-x64/etc/npmrc" ignoreErrors: true 

所以我想出了一个办法让它工作:

把它放在.ebextensions

 commands: 01_enable_rootaccess: command: echo Defaults:root \!requiretty >> /etc/sudoers 02_no-cert: command: sudo /opt/elasticbeanstalk/node-install/node-v0.10.10-linux-x64/bin/npm config set ca "" 

在我的情况下工作就像一个魅力。

可悲的是,没有为我工作。 亚马逊给了我一个不同的版本,也没有任何工作:

命令:01-command:command:'$(find / opt / elasticbeanstalk / node-install / * / bin | grep“npm $”| head -n1)config set ca“”'

这对我也不起作用。

我所做的发现:当运行“命令”块时,node-install文件夹是空的。 我认为这是因为在节点+ npm之前运行的命令完全部署到裸露的实例。

我会在今天晚些时候尝试和testing这个假设,并提供进一步的反馈。