如何在Python请求中禁用SNI?
问题描述:
我试图使用requests
通过SSL访问远程服务器。不幸的是,它被错误地配置为在SNI握手期间响应错误TLSV1_UNRECOGNIZED_NAME
,这被浏览器忽略,但在requests
中引发了异常。如何在Python请求中禁用SNI?
这似乎是同样的问题,因为这个问题,但在Python,而不是Java:SSL handshake alert: unrecognized_name error since upgrade to Java 1.7.0`
连接完美的作品在Python 2,不支持SNI。我如何禁用Python 3中的SNI以便连接起作用?
答
我找不到在requests
级别禁用SNI的方法,但是我发现了一个黑客,它会欺骗它认为SNI不受支持。进口requests
之前添加以下代码(不是之后,否则就太晚了):
import ssl
ssl.HAS_SNI = False
+0
请求2.18.1不再适用于我 – Guss
不知道,如果它涉及,但今天我翻过'requests_toolbelt' offereing [SSLAdapter(https://开头工具区。 readthedocs.org/en/latest/user.html#ssladapter)。 –