昨天正在用Python完成一个项目的测试(5月份时能正常运行),总提示如下错误:
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:1000)')))
通过网上各种测试均未解决,包括升级python版本、requests、urllib3等,错误几乎100%出现。
原来怀疑是应用有问题,但用Postman调试正常,只是但在Python中出现错误,分析后将问题定位在本地机。测试中,发现只要关闭火绒,把程序放到一个新的路径下运行,程序就执行正常,一旦开启火绒,程序就会出如上错误。于是最终定位问题还是出在火绒。然后观察浏览器地址栏,发现许多网站的证书均被替换,比如如下百度和腾讯,域名没有问题,但证书的颁发者变为火绒,且有效期均为20年。
今天早晨在火绒论坛注册账号,准备提交问题时发现官方有相关说明,本文附录如下:
据此可以给出解决方案:
方案一、关闭加密连接扫描。
方案二、将需要的网站加入到排除域名里。
采用方案一可能会损失一定的安全性,故采取方案二,将指定网站添加到排除列表。
问题至此解决。