https://s3.zoneame.amazonaws.com/ [SSL:CERTIFICATE_ VERIFY_FAILED]证书的SSL验证失败(_ssl.c:749)

时间:2019-02-14 11:12:39

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

当我运行aws s3 ls命令时出现以下错误

https://s3.zonename.amazonaws.com/的SSL验证失败[SSL:CERTIFICATE_ VERIFY_FAILED]证书验证失败(_ssl.c:749) 但是它可以与--no-verify-ssl

一起使用

如何使ssl工作?

aws s3 ls --debug 

在下面登录

Traceback (most recent call last):
File "C:\Program Files\Amazon\AWSCLI\runtime\lib\site-packages\urllib3\connect
ionpool.py", line 594, in urlopen
self._prepare_proxy(conn)
File "C:\Program Files\Amazon\AWSCLI\runtime\lib\site-packages\urllib3\connect
ionpool.py", line 805, in _prepare_proxy
conn.connect()
File "C:\Program Files\Amazon\AWSCLI\runtime\lib\site-packages\urllib3\connect
ion.py", line 344, in connect
ssl_context=context)
File "C:\Program Files\Amazon\AWSCLI\runtime\lib\site-packages\urllib3\util\ss
l_.py", line 344, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "ssl.py", line 401, in wrap_socket
File "ssl.py", line 808, in __init__
File "ssl.py", line 1061, in do_handshake
File "ssl.py", line 683, in do_handshake
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c
:749)

3 个答案:

答案 0 :(得分:0)

这里的问题不是使用代理本身(AWS CLI可以通过设置HTTPS_PROXY环境变量来实现此目的),但是AWS CLI客户端不信任代理的证书。代理的证书可能是自签名的,并且您的公司设置为CA(证书颁发机构)。 AWS CLI客户端无法在本地系统的CA注册表中找到您公司的CA根证书,因此无法验证代理的证书并发出CERTIFICATE_VERIFY_FAILED错误。

要解决此问题,我们可以通过--ca-bundle命令参数(或通过company-root-ca.pem环境变量或配置文件)将公司的根证书(例如AWS_CA_BUNDLE)传递给AWS CLI客户端:

$ export HTTPS_PROXY=<host>:<port>
$ aws s3 ls --ca-bundle /path/to/company-root-ca.pem

答案 1 :(得分:0)

我在使用 S3 docker 工具时遇到了同样的问题。

--network=host 添加到 docker 命令为我修复了它。

答案 2 :(得分:0)

getGuards(x)

这会奏效!!享受