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

Sal*_*lam 11 ssl-certificate amazon-web-services aws-cli amazon-elastic-beanstalk

我尝试使用 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)
Run Code Online (Sandbox Code Playgroud)

笔记:

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

C:\abdul>aws ec2 describe-instances --instance-ids 'i-xxxxxxxxxxxxxx'
Run Code Online (Sandbox Code Playgroud)

上面的命令工作没有任何问题,只有当我尝试“elasticbeanstalk”命令时,我才收到上面的错误。

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

提前致谢。

Pfl*_*ugs 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)

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


Vel*_*elu 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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过连接从第一个命令获取的所有文件来创建一个bundle.pem 。

猫 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 ==> 现在应该可以正常工作了。