aws cli中的SSL CERTIFICATE_VERIFY_FAILED

时间:2015-10-05 10:11:59

标签: amazon-web-services amazon-s3 aws-cli

我在Windows Server 2007 32bit上安装AWS CLI

aws --version
aws-cli/1.8.8 Python/2.7.9 Windows/2008Server 

我使用键配置aws cli

一旦我运行bellow命令测试AWS S3, 如下所示给出了SSL错误

aws s3 ls
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

请帮助摆脱这个基本错误

12 个答案:

答案 0 :(得分:13)

在您的cmd中使用此选项 “--no-验证-SSL”

答案 1 :(得分:8)

不确定它是否与OP的问题有关,但是,我们的一位开发人员今天早上遇到了这个问题,原来他正在使用Fiddler(在Windows上)来调试其他问题。在停止Fiddler(拦截https流量)后,问题得到了解决。

答案 2 :(得分:3)

我在Windows 10上遇到了同样的问题。这恰好是由于aws cli没有从Windows注册表中读取Internet代理设置。通过将环境变量HTTP_PROXY和HTTPS_PROXY设置为公司Internet代理来修复相同的错误。希望它对某人有帮助!

答案 3 :(得分:1)

我的解决方法是:

pip install awscli --force-reinstall --upgrade

答案 4 :(得分:1)

我在公司/公司网络的Mac OSX上遇到了类似的问题。 如果您不知道代理URL,请从公司的网络管理员处获取并使用以下命令进行配置。

Linux,macOS或Unix

$ export HTTP_PROXY=http://proxy.example.com:1234
$ export HTTPS_PROXY=https://proxy.example.com:1234

Windows

$ set HTTP_PROXY=http://proxy.example.com:1234
$ set HTTPS_PROXY=https://proxy.example.com:1234

More information

答案 5 :(得分:0)

如果要使用SSL,而不必指定-no-verify-ssl 选项,则需要设置 AWS_CA_BUNDLE 环境变量。例如,从PowerShell:

setx AWS_CA_BUNDLE "C:\Users\UserX\Documents\RootCert.pem"

PEM文件是您尝试连接的AWS终端节点的根证书的已保存副本。要生成它,请首先以DER格式导出证书(有关如何执行此操作的详细信息,请参见here)。然后运行以下命令以转换为PEM格式:

openssl x509 -inform der -in "C:\Users\UserX\Documents\RootCert.der" -out RootCert.pem

如果您使用的是Powershell而未使用bash,则需要先安装openssl

有关AWS CLI支持的环境变量的完整列表,请参阅here

答案 6 :(得分:0)

问题很可能是由公司代理引起的。就我而言,我在代理服务器后面的AWS CLI上运行命令,并收到证书错误。 因此,为了解决这个问题,我添加了 -no-verify-ssl 标志。尽管这不是一个好主意,但我还是用它作为临时解决方案来完成工作,直到网络团队将其解决为止。

答案 7 :(得分:0)

我相信该选项已经尝试过了,只是将其放在此处供大家参考:

当您将代理添加到ec2计算机时,并且该代理位于带有S3 vpc端点的专用子网中。我遇到了同样的错误。

按照https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/

使用no_proxy为存储桶绕过代理

没有帮助我,但仍然失败,并出现相同的错误。

这里唯一要注意的是,我们需要添加端点URL,它是s3.ap-southeast-2.amazonaws.com,如下所示,并且对我有用:

export NO_PROXY = 169.254.169.254,s3.ap-southeast-2.amazonaws.com

在我的案例中,

169.254.169.254用于访问实例角色凭据。

答案 8 :(得分:0)

我遇到了类似的问题,并通过如下设置代理解决了该问题:

import pandas as pd
import cx_Oracle
connection = cx_Oracle.connect('username/pass@localhost/schema')
statement = "select clob_column from table "
df = pd.read_sql(statement, con=connection)
#print(df.head())
corpus=(df['CLOB_COLUMN'].values.tolist())
print (corpus)

答案 9 :(得分:0)

我将证书添加到C:\ Program Files \ Amazon \ AWSCLIV2 \ botocore \ cacert.pem,它解决了问题。

答案 10 :(得分:-1)

使用以下选项解决ssl认证问题。

aws s3 ls --no-verify-ssl

答案 11 :(得分:-1)

我同意以上答案,请执行以下操作

1- 删除您的 cli 并安装最新的 cli

2- 检查证书是否存在:C:\Program Files\Amazon\AWSCLIV2\botocore\cacert.pem

3- 如果它不存在,请删除 cli 并转到:C:\Program Files\ 并删除 Amazon

4- 安装 cli 最新版本,它应该可以工作。

5- 尝试在连接 VPN 的情况下进行测试