python调接口报错如下:
requests.exceptions.SSLError: HTTPSConnectionPool(host='abc.com', port=443)
Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)')))
简单分析了一下原因,最新版本的SSL默认不使用弱DH(DH:即Diffie-Hellman,密钥交换协议/算法),因此会报错。
这里的解决方案是通过设置默认值来降低ssl级别
在需要调度request的文件中引入用一下代码
import requests
requests.packages.urllib3.disable_warnings()
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
try:
requests.packages.urllib3.contrib.pyopenssl.util.ssl_.DEFAULT_CIPHERS += ':HIGH:!DH:!aNULL'
except AttributeError:
# no pyopenssl support used / needed / available
pass
Python接口请求SSL错误:升级SSL配置解决方法

本文介绍了在Python中遇到SSL连接问题,由于新版SSL库默认禁用弱DH算法导致的报错,提供了解决方案,包括引入代码调整ssl级别。
3997

被折叠的 条评论
为什么被折叠?



