当我使用python boto连接到aws ec2时,它显示SSLError:[SSL:CERTIFICATE\u VERIFY\u FAILED]CERTIFICATE VERIFY FAILED(\u SSL.c:661)

当我使用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

我使用的是Windows10操作系统

我想数一数AWS的IP地址

我使用
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证书被代理证书取代。Python
certifi
模块需要信任此代理证书链。无论是否有代理,下面的方法都应解决
SSL:CERTIFICATE\u VERIFY\u FAILED
错误

以下是我为解决这个问题所做的-

  • 找到cacert.pem所在的路径-
  • 如果没有,请安装certifi。命令:
    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

  • 从amazonaws.com URL下载证书链。例如:在浏览器上转到,导出根目录、所有中间证书、域证书并另存为base64编码的.cer文件。在记事本中打开证书,复制所有内容

  • 现在在记事本中打开cacert.pem,只需在末尾添加所有下载的证书内容(
    --开始证书---***--结束证书---

  • 重新启动命令行提示符或PowerShell,应解决SSL验证错误

    不要在您组织的环境中使用
    is_secure=False
    。这实际上是禁用SSL验证


    windows10
    机器上,我对
    boto3
    python3.7
    也有同样的问题。事实证明,由于我使用的是安装了代理的公司设备,*.amazonaws.com证书被代理证书取代。Python
    certifi
    模块需要信任此代理证书链。无论是否有代理,下面的方法都应解决
    SSL:CERTIFICATE\u VERIFY\u FAILED
    错误

    以下是我为解决这个问题所做的-

  • 找到cacert.pem所在的路径-
  • 如果没有,请安装certifi。命令:
    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

  • 从amazonaws.com URL下载证书链。例如:在浏览器上转到,导出根目录、所有中间证书、域证书并另存为base64编码的.cer文件。在记事本中打开证书,复制所有内容

  • 现在在记事本中打开cacert.pem,只需在末尾添加所有下载的证书内容(
    --开始证书---***--结束证书---

  • 重新启动命令行提示符或PowerShell,应解决SSL验证错误

    不要在您组织的环境中使用
    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 UnauthorizedAuthFailureAWS无法验证提供的访问凭据***************************************您好@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 UnauthorizedAuthFailureAWS无法验证提供的访问凭据***************************************您好@Andrew我已编辑答案以帮助您验证密钥。希望它能帮助Somi Harjani,非常感谢,这将返回相同的问题。我会检查我的api密钥,我会检查我的api密钥和密码。没错。这是不是太奇怪了
    import certifi
    certifi.where()
    C:\\Users\\[UserID]\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\certifi\\cacert.pem