用于 NodeJS 的 Elastic Beanstalk 上的 SELF_SIGNED_CERT_IN_CHAIN 错误
Posted
技术标签:
【中文标题】用于 NodeJS 的 Elastic Beanstalk 上的 SELF_SIGNED_CERT_IN_CHAIN 错误【英文标题】:SELF_SIGNED_CERT_IN_CHAIN error on Elastic Beanstalk for NodeJS 【发布时间】:2014-04-01 12:45:49 【问题描述】:我很清楚这个问题的根源,正如npm
在他们的博客上所写:http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more
解决办法是:
1) 升级你的 npm 版本
npm install npm -g
或
2) 告诉你当前版本的 npm 使用已知的注册商
npm config set ca ""
但是,这些解决方案均不适用于 Elastic Beanstalk。 npm
与安装的node版本(v0.10.10)相关联,无法告诉当前npm版本使用已知的registrar。
我为 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 ""
有人想出了解决办法吗?
【问题讨论】:
可以编辑~/.npmrc,对吧? 好吧,它没有解决任何问题,我在尝试推送新版本时仍然遇到该错误。 【参考方案1】:我也为此苦苦挣扎。修复:https://gist.github.com/anonymous/fb32a4b053fe121b0b03。在container_commands
应用时npm install
已经运行。
【讨论】:
这个解决方案对我有用(带节点 v0.10.21)。显然不是一个可取的长期解决方案,但在 Elastic Beanstalk 支持更新版本之前,它在我们的开发服务器上作为权宜之计。谢谢!【参考方案2】:今天遇到同样的问题。我通过设置我的全局 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
【讨论】:
【参考方案3】:所以我想出了一个让它工作的方法:
把这个放到.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 ""
对我来说就像一个魅力。
【讨论】:
【参考方案4】:很遗憾,对我没有用。亚马逊给了我一个不同的版本,但也没有用:
命令: 01-命令: 命令:'$(find /opt/elasticbeanstalk/node-install/*/bin | grep "npm$" | head -n1) config set ca ""'
【讨论】:
【参考方案5】:这对我也不起作用。
我发现了什么:在“命令”块运行时,节点安装文件夹是空的。我认为这是因为命令在 node + npm 完全部署到裸实例之前运行。
我将在今天晚些时候尝试测试这个假设,并提供进一步的反馈。
【讨论】:
以上是关于用于 NodeJS 的 Elastic Beanstalk 上的 SELF_SIGNED_CERT_IN_CHAIN 错误的主要内容,如果未能解决你的问题,请参考以下文章
Elastic:使用 Fluentd 及 Elastic Stack 进行应用日志采集
Elastic Beanstalk 上的 NodeJS 多容器 Docker
Bcrypt Elastic beanstalk nodejs 部署
如何将 NodeJS 部署自定义到 Elastic Beanstalk?