当前位置: 首页 > 知识库问答 >
问题:

python 3.73(Windows,urllib3)ssl。SSLCertVerificationError:[SSL:证书\u验证\u失败]

龙新荣
2023-03-14

执行简单代码后:

from urllib3 import ProxyManager

def GET(url):
    http = ProxyManager("https://91.208.39.70:8080")
    response = http.urlopen('GET', url)
    print(response.data)
    return ''


if __name__ == '__main__':
    result = GET("https://example.com")
    print(result)

我有下一个错误:

Traceback(最近一次调用最后一次):文件"F:\Run\Lpror\Phyton\lib\site-包\urllib3\connectionpool.py",第597行,在urlopenf中。_prepare_proxy(conn)文件"F:\Run\Lpror\Phyton\lib\site-包\urllib3\connectionpool.py",第807行,在_prepare_proxyconn.connect()File"F:\Run\Lpror\Phyton\lib\site-包\urllib3\connection.py",第350行,在连接ssl_context=上下文中)File"F:\Run\Lpror\Phyton\lib\site-包\urllib3\util\ssl_. py",第355行,ssl_wrap_socket返回context.wrap_socket(sock,server_hostname=server_hostname)文件"F:\Run\Lpror\Phyton\lib\ssl.py",第412行,在wrap_socket会话=会话文件"F:\Run\Lpror\Phyton\lib\ssl.py",第853行,在_createself.do_handshake()文件"F:\Run\Lpror\Phyton\lib\ssl.py",第1117行,do_handshake。_sslobj.do_handshake()ssl。[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:证书链中的自签名证书(_ssl. c: 1056)

在处理上述异常时,发生了另一个异常:

回溯(最近一次调用):文件“F:/My/Documents/PycharmProjects/proxyTester/proxy.py”,第17行,在result=GET(“https://example.com)文件“F:/My/Documents/pycharm项目/proxyTester/proxy。py”,第11行,在GET response=http.urlopen('GET',url)文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\poolmanager”中。py”,第451行,在urlopen return super(ProxyManager,self).urlopen(方法,url,redirect=redirect,**kw)文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\poolmanager”中。py”,第326行,在urlopen response=conn.urlopen(方法,u.request\u uri,**kw)文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\connectionpool”中。py”,第670行,在urlopen**response_kw)文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\connectionpool”中。py”,第670行,在urlopen**response_kw)文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\connectionpool”中。py”,第670行,在urlopen**response_kw)文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\connectionpool”中。py”,第641行,在urlopen _stacktrace=sys.exc_info()[2])文件“F:\Run\Lprogr\Phyton\lib\site packages\urllib3\util\retry”中。py”,第399行,增量raise MaxRetryError(_pool,url,error或ResponseError(cause))urllib3.exceptions.MaxRetryError:HTTPSConnectionPool(host='example.com',port=443):url:/(由SSLError(SSLCertVerificationOnError(1,[SSL:CERTIFICATE\u Verification\u失败)引起)证书验证失败:证书链中的自签名证书(_ssl.c:1056'))

更新:我不想忽略证书验证。

共有3个答案

司马腾
2023-03-14

如果您使用的是windows server 2018/2019(我在个人数据中心服务器上试用过。)您可以发出下面的命令以允许您的程序连接。就我所知,这是一个系统范围的修复。我必须在管理终端上运行它才能让它工作,但这个命令解决了我所有的问题。

certutil -generateSSTFromWU roots.sst && certutil -addstore -f root roots.sst && del roots.sst

祝你好运!

罗淮晨
2023-03-14

终于找到了解决办法。

A.忽略SSL验证:

http = ProxyManager("https://91.208.39.70:8080", cert_reqs=ssl.CERT_NONE)

我从certifi下载了CA包,并将其放置到任何文件夹中,例如:f:\cert。编码如下:

http = ProxyManager("https://91.208.39.70:8080", cert_reqs='CERT_REQUIRED', ca_certs='f:/cert/certs.pem')

其他信息。

如果有人知道其他可行的解决方案,请建议。。。

连鸿
2023-03-14

证书是为域名注册的,而不是为ip注册的。您可以对域名提出请求,或者忽略ssl验证(参见此处),或者将https替换为http(仅当服务器允许http连接时才起作用)

 类似资料:
  • 我在使用模块urllib(Python 3.6)时遇到了问题。每次使用该模块时,我都会收到相当于一页的错误。 urllib有什么问题以及如何修复? 这段代码喜欢吐出一口东西: 好像模块本身出了问题。

  • 我正在练习'Web Scraping with Python'中的代码,我一直遇到这个证书问题: 错误是: 顺便说一句,我也在练习scrapy,但一直遇到问题:command not found:scrapy(我在网上尝试了各种解决方案,但都没有奏效……真令人沮丧)

  • 您好,我在构建python映像时遇到问题 错误说, 但是当升级pip时,同样的错误显示。 错误:由于环境原因无法安装程序包错误:HTTPSConnectionPool(host='files.pythonhosted.org',port=443):url超过最大重试次数:/packages/ac/cf/0cc542fc93de2f3b9b53cb979c7d118cffb93204afb4629a

  • 问题内容: 我正在尝试通过调用HTTPS REST API 。在开发过程中,我偶然发现以下错误: 因此,我在Google上搜索了一下,并找到了很多可行的解决方案。 使用Jersey客户端的HTTPS https://gist.github.com/outbounder/1069465 如何解决“ java.security.cert.CertificateException:不存在使用者替代名称”

  • 问题内容: 假设我编写了两个Java应用程序:并且它们被部署并在两个单独的服务器上运行(部署到和部署到),并且这两个应用程序需要通过SSL相互通信(双向)。我们还假设每个应用程序都有自己的SSL证书。 我(Java程序员)如何编码并验证彼此的SSL证书?每个CA是否都提供某种我可以使用的RESTful API ?Java是否有自己的证书验证API?我可以使用开放源代码的第三方JAR或服务吗? 当我

  • 我正在尝试通过调用HTTPS REST API。在开发过程中,我偶然发现了以下错误: 所以我用谷歌搜索了一下,找到了大量的解决方案,实际上是有效的。 使用泽西客户端的HTTPS https://gist.github.com/outbounder/1069465 如何修复java.security.cert.证书异常:不存在主题替代名称错误? http://www.mkyong.com/webse