最近在使用http.client调用btcd时报错SSLError
['Btcd Thread:', (<class 'ssl.SSLError'>, SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'), <traceback object at 0x7f03c20f6c48>)]
网上找了很多解决方法,都是针对requests的:
方法一:设置不认证
request.get(url, verify=False)
request.get(url, verify=False)
这个是网上搜到的最常用的方法,但是我的代码中使用的是HTTPConnection.request()这个函数,好像不能在参数中设置verify,就放弃这个方法。
参考:https://www.jianshu.com/p/8deb13738d2c
方法二:安装requests的security extras
pip install -U requests[security]
好不容易下载完了,结果还是没有任何帮助..
方法三:更新系统的certifi
sudo apt-get install ca-certificates
同样也没有解决问题
方法四:
最后还是采用这个方法解决了:
引入ssl模块
import ssl
在url链接代码上方添加语句:
ssl._create_default_https_context = ssl._create_unverified_context
参考: