Curl 亚马逊EC2/S3“;自签名证书“;使用ec2上载捆绑包时出现SSL故障

Curl 亚马逊EC2/S3“;自签名证书“;使用ec2上载捆绑包时出现SSL故障,curl,amazon-web-services,Curl,Amazon Web Services,当尝试将AMI包上载到S3时,是否有其他人看到此错误 Error talking to S3: Curl.Error(60): SSL certificate problem: self signed certificate in certificate chain 昨天刚开始,周五工作正常。在使用PHP工具包时报告了一些类似的问题- 但我不认为它们和我的问题完全一样。我的名字里没有点 更多回溯: Created image.part.174 Created image.part.1

当尝试将AMI包上载到S3时,是否有其他人看到此错误

Error talking to S3: Curl.Error(60): SSL certificate problem: self signed certificate in certificate chain
昨天刚开始,周五工作正常。在使用PHP工具包时报告了一些类似的问题-

但我不认为它们和我的问题完全一样。我的名字里没有点

更多回溯:

Created image.part.174
Created image.part.175
Generating digests for each part...
Digests generated.
Unable to read instance meta-data for ramdisk-id
Unable to read instance meta-data for product-codes
Creating bundle manifest...
ec2-bundle-vol complete.
ERROR: Error talking to S3: Curl.Error(60): SSL certificate problem: self signed certificate in certificate chain

在运行
ec2 upload bundle
之前,是否有某种环境变量可用于(临时)切换curl的SSL验证?

看起来您可能正在从以前使用
ec2 bundle vol
打包的AMI运行
ec2 upload bundle
,这将在创建系统映像之前删除系统上的许多不同文件(以避免敏感信息进入映像)。从:

默认情况下,捆绑过程排除可能包含敏感信息的文件。这些文件包括
*.sw
*.swo
*.swp
*.pem
,*.priv
*id\u rsa*
*id\u dsa*
`gpg
*.jks
*/.ssh/authorized\u密钥
,以及
*/.bash\u历史记录。要包含所有这些文件,请使用
--no filter
选项。要包含其中一些文件,请使用
--include选项

在本例中,系统上的根证书数据库似乎出了问题。在Ubuntu(可能还有其他发行版)上,运行此命令会在系统上重新加载根证书,从而解决问题:

update-ca-certificates

现在,我已经通过将
lib/ec2/common/curl.rb
的第66行更改为
invocation=“curl-k-sSL#{command}”
——添加
-k
flag.hm,我想知道这是否与ec2 bundle vol默认不传输gpg文件有关?是的,看起来问题在于我运行的机器来自我使用ec2 bundle vol创建的AMI,它去掉了所有的.pem和.gpg文件,因为它们是“敏感的”,因此破坏了SSL。请注意,谢谢。要解决这个问题,您需要在
ec2 bundle vol
命令中添加类似于
--include/etc/ssl/certs
的内容。谢谢,这为我解决了这个问题。在centOS上
更新ca trust
执行此任务