gpt4 book ai didi

Python SSLError,sslv3 警报握手失败,用于 wallhaven.cc

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:05 25 4
gpt4 key购买 nike

Python 版本:3.5.2

操作系统:OS X 10.12

OpenSSL 版本:OpenSSL 1.1.0b 2016 年 9 月 26 日

我正在尝试请求“https://alpha.wallhaven.cc”。

import urllib.request
init_page=urllib.request.urlopen("https://alpha.wallhaven.cc")

然后得到

ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:645)

During handling of the above exception, another exception occurred:
...
urllib.error.URLError: <urlopen error [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:645)>

以下解决方案不起作用:

import requests.packages.urllib3.util.ssl_
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS='ALL'

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

import requests
print(requests.get("https://alpha.wallhaven.cc",verify=False))

或更改/APNSWrapper/connection.py 第 131 行:

ssl_version = self.ssl_module.PROTOCOL_SSLv3,

进入

ssl_version = self.ssl_module.PROTOCOL_TLSv1,

那么问题是什么?如何解决?非常感谢!

最佳答案

OpenSSL Version: OpenSSL 1.1.0b 26 Sep 2016 ... sslv3 alert handshake failure (_ssl.c:645)>

我不怀疑你的系统上安装了 OpenSSL 1.1.0b,但我怀疑你的 python 是否实际使用了这个版本。通常 MacOS 安装了旧版本 0.9.8 的 OpenSSL,除非一个 compiles python to use another openssl将使用此版本,即使系统上某处安装了其他 OpenSSL 版本。要检查您的 python 使用的 OpenSSL 版本:

  import ssl
print(ssl.OPENSSL_VERSION)

如果这显示 OpenSSL 1.1.0b... 我的假设是错误的,但如果这显示 0.9.8 我的论证是正确的:

  • 握手失败表示与证书验证无关的问题。
  • 查看 SSLLabs report我可以看到服务器只支持 ECDHE 密码。
  • OpenSSL 0.9.8 版不支持 ECDHE 密码
  • 因此客户端和服务器之间没有共享密码,握手失败

关于Python SSLError,sslv3 警报握手失败,用于 wallhaven.cc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40257593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com