下面的代码用于获取区域。
import boto3
ec2 = boto3.client('ec2', 'region-name')
print(ec2.describe_regions())
在我的机器上执行此代码时,我收到此错误。
botocore.exceptions.SSLError:SSL 验证失败https://ec2.region-name.amazonaws.com/[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1108)
我在 Windows 10 机器上运行此代码VS code作为我的编辑。我在需要安装的地方寻找其他答案Install Certificates.command
文件。不过,看起来它只能在 macOS 上找到。
有人也可以告诉我这个问题的原因吗?
此外,上周收到 AWS 的通知,他们正在将所有 AWS FIPS 端点更新为 TLS 1.2
因此需要连接到 TLS 版本 1.2 FIPS 端点。我检查了我的 TLS 版本here。它说我的 TLS 版本为 1.2。有什么与此相关的吗?因为在此通知之前,我的脚本运行完美。
请有人告诉这个错误的原因以及可能的更正。另外,如果我的理解有错误,请纠正我。
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
是因为Pythonssl
库无法在本地计算机上找到要验证的证书。
调试的一种方法是查看您是否有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())"
If 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)