【问题标题】:botocore.exceptions.SSLError: SSL validation failed on WIndowsbotocore.exceptions.SSLError:Windows 上的 SSL 验证失败
【发布时间】:2020-12-12 21:14:18
【问题描述】:

以下代码用于获取区域。

import boto3
ec2 = boto3.client('ec2', 'region-name')
print(ec2.describe_regions())

在我的机器上执行此代码时,我收到此错误。

botocore.exceptions.SSLError: SSL validation failed for https://ec2.region-name.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1108)

我正在使用 VS 代码 作为我的编辑器的 Windows 10 机器上运行此代码。我在他们需要安装Install Certificates.command 文件的地方寻找其他答案。但是,看起来它仅在 macOS 上可用。

谁能告诉我这个问题的原因?

此外,上周收到来自 AWS 的通知,他们正在将所有 AWS FIPS 端点更新到 TLS 1.2 因此需要连接到 TLS 版本 1.2 FIPS 端点。我检查了我的 TLS 版本here。它说我有 TLS 1.2 版。有什么相关的吗?因为在此通知之前,我的脚本运行良好。

请有人告诉这个错误的原因和可能的更正。另外,如果我提到我的理解有问题,请纠正我。

【问题讨论】:

    标签: python amazon-web-services ssl boto3


    【解决方案1】:

    [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate 是因为 Python ssl 库无法在您的本地计算机上找到要验证的证书。

    一种调试方法是查看您是否将ca_bundle 设置为其他值:

    python -c "from botocore.session import Session; print(Session().get_config_variable('ca_bundle'))"
    

    如果它不打印任何东西,那么它使用默认路径。您可以通过以下方式检查默认路径:

    python -c "import ssl; print(ssl.get_default_verify_paths())"
    

    如果ca_bundle 打印了一些东西,那么它是由AWS_CA_BUNDLE 环境变量或过去由aws configure set default.ca_bundle <some path> 设置的。如果您不小心将其设置在那里,还要检查~/.aws/config(Windows 的配置文件位置:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

    Install Certificates.command 基本上是一个 Python 脚本,您可以自己运行 https://gist.github.com/marschhuynh/31c9375fc34a3e20c2d3b9eb8131d8f3 。另存为install-cert.py 并运行python install-cert.py

    【讨论】:

      【解决方案2】:

      【讨论】:

      • @shreyaskar,我与您共享的链接也有原因。这可能是由于缺少未使用 AWS CLI 配置命令配置的 AWS 凭证,由于过时的 Python 模块(如 certifi、requests、urllib3 或 pyopenssl)、由于 AWS CLI 的过时版本、由于 Windows 中缺少与 HTTP/HTTPS 相关的环境变量代理,由于与内容或位置相关的 CA 证书问题或由于 Fiddler 运行。
      • 我检查了所有的链接。还是没有解决。当我的脚本运行时,我没有运行任何 Fiddler,并且之前没有安装任何证书。所以这个错误一定是来自别的东西。另外,请查看错误代码:_ssl.c:1108。你提到的链接我猜是其他错误。
      • @shreyaskar,试试这个答案:stackoverflow.com/a/61221942/11758843
      猜你喜欢
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多