我尝试使用requests
通过SSL访问远程服务器。不幸的是,它错误配置,以便在SNI握手期间响应错误TLSV1_UNRECOGNIZED_NAME
,浏览器会忽略该错误,但在requests
中引发异常。
这似乎与此问题相同,但在Python而不是Java中:SSL handshake alert: unrecognized_name error since upgrade to Java 1.7.0`
这种连接在Python 2中完美运行,它不支持SNI。如何在Python 3中禁用SNI以使连接有效?
答案 0 :(得分:6)
我找不到在requests
级别禁用SNI的方法,但是我发现了一个黑客,它会欺骗它认为不支持SNI。在导入requests
之前添加此代码(不是之后,或者为时已晚):
import ssl
ssl.HAS_SNI = False