当我使用python boto连接到aws ec2时,它显示SSLError:[SSL:CERTIFICATE\u VERIFY\u FAILED]CERTIFICATE VERIFY FAILED(\u SSL.c:661)
我使用的是Windows10操作系统 我想数一数AWS的IP地址 我使用当我使用python boto连接到aws ec2时,它显示SSLError:[SSL:CERTIFICATE\u VERIFY\u FAILED]CERTIFICATE VERIFY FAILED(\u SSL.c:661),python,amazon-web-services,boto,Python,Amazon Web Services,Boto,我使用的是Windows10操作系统 我想数一数AWS的IP地址 我使用python2.7.14和boto 2.6.0 我添加了一个名为boto.configlocate C:\Users\Administrator文件夹的文件 boto.config的内容是: [Credentials] aws_access_key_id=****** aws_secret_access_key=***** 脚本为: #!/usr/bin/env python # -*- encoding: utf8
python2.7.14
和boto 2.6.0
我添加了一个名为boto.config
locate C:\Users\Administrator文件夹的文件
boto.config的内容是:
[Credentials]
aws_access_key_id=******
aws_secret_access_key=*****
脚本为:
#!/usr/bin/env python
# -*- encoding: utf8 -*-
import boto.ec2
from pprint import pprint
import ssh
import requests
import urllib3
import certifi
import ssl
conn = boto.ec2.connect_to_region('cn-north-1')
reservations = conn.get_all_instances()
InstanceMap=[]
for reservation in reservations:
for instance in reservation.instances:
if 'env' in instance.tags and instance.tags['env'] == 'test':
InstanceMap.append(instance.ip_address)
f = open('F:\ip.txt','w')
pprint(InstanceMap, f)
当我运行此脚本时,它显示错误形成:
SSLError:[SSL:CERTIFICATE\u VERIFY\u FAILED]证书验证失败(\u SSL.c:661)
解决此问题的方法是什么?尝试添加下面的
is\u secure=False
以跳过ssl验证
conn = boto.ec2.connect_to_region('cn-north-1',is_secure=False)
尝试提供这样的凭据,这样您就可以知道boto配置中的密钥是否旧如果这样做有效,并且如果这返回相同的问题,那么您需要检查您的api密钥和密码
尝试如下添加
is_secure=False
,以跳过ssl验证
conn = boto.ec2.connect_to_region('cn-north-1',is_secure=False)
尝试提供这样的凭据,这样您就可以知道boto配置中的密钥是否旧如果这样做有效,并且如果这返回相同的问题,那么您需要检查您的api密钥和密码
在
windows10
机器上,我对boto3
和python3.7
也有同样的问题。事实证明,由于我使用的是安装了代理的公司设备,*.amazonaws.com证书被代理证书取代。Pythoncertifi
模块需要信任此代理证书链。无论是否有代理,下面的方法都应解决SSL:CERTIFICATE\u VERIFY\u FAILED
错误
以下是我为解决这个问题所做的-
pip安装certifi
AWS\u CA\u BUNDLE
环境变量设置为cacert.pem
路径-
AWS\u CA\u BUNDLE=C:\Users\[UserID]\AppData\Local\Programs\Python37-32\Lib\site packages\certifi\cacert.pem
--开始证书---***--结束证书---
)is_secure=False
。这实际上是禁用SSL验证
在
windows10
机器上,我对boto3
和python3.7
也有同样的问题。事实证明,由于我使用的是安装了代理的公司设备,*.amazonaws.com证书被代理证书取代。Pythoncertifi
模块需要信任此代理证书链。无论是否有代理,下面的方法都应解决SSL:CERTIFICATE\u VERIFY\u FAILED
错误
以下是我为解决这个问题所做的-
pip安装certifi
AWS\u CA\u BUNDLE
环境变量设置为cacert.pem
路径-
AWS\u CA\u BUNDLE=C:\Users\[UserID]\AppData\Local\Programs\Python37-32\Lib\site packages\certifi\cacert.pem
--开始证书---***--结束证书---
)is_secure=False
。这实际上是禁用SSL验证
当我添加“is_secure=False”时,错误显示:conn=boto.ec2.connect_to_region('cn-north-1',is_secure=False)文件“C:\Python27\lib\site packages\boto-2.6.0-EC2ResponseError:EC2ResponseError:401 Unauthorized
AuthFailure
AWS无法验证提供的访问凭据***************************************您好@Andrew我已编辑答案以帮助您验证密钥。希望它能帮助Somi Harjani,非常感谢,这将返回相同的问题。我会检查我的api密钥,我会检查我的api密钥和密码。没错。这是否需要允许我的access\u key\u id和secret\u id对应的用户授予相应的权限?目前,这个帐号是管理员的权限,我解决了这个问题。此问题的原因:EC2ResponseError:EC2ResponseError:401未经授权。这是因为IAM的角色没有足够的权限。我更改了另一个IAM角色,现在可以了。当我添加“is_secure=False”时,错误显示:conn=boto.ec2。将_连接到_区域('cn-north-1',is_secure=False)文件“C:\Python27\lib\site packages\boto-2.6.0-EC2ResponseError:EC2ResponseError:401 UnauthorizedAuthFailure
AWS无法验证提供的访问凭据***************************************您好@Andrew我已编辑答案以帮助您验证密钥。希望它能帮助Somi Harjani,非常感谢,这将返回相同的问题。我会检查我的api密钥,我会检查我的api密钥和密码。没错。这是不是太奇怪了
import certifi
certifi.where()
C:\\Users\\[UserID]\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\certifi\\cacert.pem