AWS CLI - [SSL:CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl.c:1056)

问题描述 投票:0回答:5

我尝试使用 AWS-CLI 检索 aws elasticbeanstalk 详细信息,但收到以下错误。

错误信息:

C:\abdul>aws elasticbeanstalk describe-environments --environment-name myenvname

SSL validation failed for https://elasticbeanstalk.us-east-1.amazonaws.com/ [SSL
: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate
in certificate chain (_ssl.c:1056)

注:

当我尝试检索我的 EC2 详细信息时,我可以毫无问题地工作,

C:\abdul>aws ec2 describe-instances --instance-ids 'i-xxxxxxxxxxxxxx'

上述命令有效没有任何问题,仅当我尝试“elasticbeanstalk”命令时才会出现上述错误。

注: 我已准备好所需的所有必要证书。

提前致谢。

amazon-web-services ssl-certificate amazon-elastic-beanstalk aws-cli
5个回答
14
投票

我在谷歌搜索时找到了这篇文章。 就我而言,我收到的错误消息是:

SSL validation failed for https://ec2.us-west-2.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1091)

我发现 this blog 告诉我添加一个名为

AWS_CA_BUNDLE
的环境变量,其值是指向 CA 证书文件的路径(在向我们的公司网络团队请求后,我将其保存在本地计算机上)。 添加该环境变量后,我就能够成功运行我的 AWS CLI 命令!


6
投票

在 macOS/Linux 中实现此功能的步骤

  1. 使用 OpenSSL 下载企业自签名证书

       openssl s_client -showcerts -verify 5 -servername ec2.us-west-2.amazonaws.com -connect ec2.us-west-2.amazonaws.com:443 < /dev/null | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".crt"; print >out}' && for cert in *.crt; do newname=$(openssl x509 -noout -subject -in $cert | sed -n 's/^.*CN=\(.*\)$/\1/; s/[ ,.*]/_/g; s/__/_/g; s/^_//g;p').pem; mv $cert $newname; done
    
  2. 通过连接从第一个命令获取的所有文件来创建 bundle.pem

cat ec2_us-west-2_amazonaws_com.pem company_intermediate.pem company_root.pem >bundle.pem

  1. 使其在 AWS_CA_BUNDLE 环境变量中可用。

导出 AWS_CA_BUNDLE=/Users/velayutham/work/corp-cert/bundle.pem

  1. aws ec2 describe-instances --region us-west-2 ==> 现在应该可以正常工作了。

2
投票

我也有同样的问题。我就是这样解决的。
首先运行以下命令

$export REQUESTS_CA_BUNDLE=/path/to/company/certificate.crt

然后运行AWS cli命令

aws elasticbeanstalk describe-environments --environment-name myenvname

2
投票

检查 /usr/local/aws-cli/v2/current/dist/awscli/botocore/cacert.pem 文件的权限。 我的是 640。事实上,我必须调整整个安装的权限。


0
投票

解决方案:

导出 AWS_CA_BUNDLE=/usr/local/etc/ca-certificates/cert.pem

导出 REQUESTS_CA_BUNDLE=/usr/local/etc/ca-certificates/cert.pem

© www.soinside.com 2019 - 2024. All rights reserved.