像这样使用Pythonrequests
import requests;
requests.get('https://internal.site.no')
SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)
然而,他们建议的那些丢失的软件包都不起作用。即使设置verify=False
也会给我同样的错误。
Curl允许我尝试访问同一个站点。
版本:
最可能的错误是
requests
和服务器无法协商要使用的密码。检查卷发的用途
它会给你很多输出,但你要找的是像
SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
这样的东西。查看请求的2.11.1 to 2.12.0差异,可以看到urllib3的新版本(到版本1.19)。也许是removal of 3des咬了你?
如果您将
curl --verbose ...
输出使用的密码与this使用的密码名称映射的完整列表进行比较。您可以尝试将名称的openssl
名称添加到requests
接受的内容中,例如(您可以在应用程序/脚本的开头执行此操作):如果curl显示它正在使用
TLS_DH_anon_WITH_AES_128_CBC_SHA256
(作为一个例子)。另一个方便的技巧是使用nmap脚本ssl-enum-ciphers,如下所示:
要获取它找到的受支持密码的列表(注意,脚本可能有噪音)。。。
我也有同样的问题。检查您正在使用的请求的版本。
您应该尝试降级到2.11.1版。我做到了,它解决了我的问题。为此,在终端中发出以下命令
希望这有帮助。
相关问题 更多 >
编程相关推荐