SSL证书验证失败致请求重试超限:表单自动提交代码报错排查
SSL证书验证失败问题排查与解决
错误原因:requests库默认会验证目标网站的SSL证书,当目标网站的证书不被本地系统信任(比如是自签名证书、证书过期、域名与证书不匹配)时,就会触发SSLCertVerificationError,导致请求重试后仍失败。
解决方案:
临时绕过验证(仅用于测试)
在请求中添加verify=False参数,关闭证书验证,代码修改如下:import requests link = "https://e.mospolytech.ru/old/lk_api.php" data = {"ulogin": "sssss", "upassword": "1223"} response = requests.post(link, data=data, verify=False)注意:此方法存在安全风险,禁止在生产环境使用。
添加信任证书(生产环境推荐)
- 导出目标网站的SSL证书:通过浏览器访问该链接,点击地址栏的锁形图标,将证书导出为
.crt格式文件。 - 在请求中指定证书路径:
import requests link = "https://e.mospolytech.ru/old/lk_api.php" data = {"ulogin": "sssss", "upassword": "1223"} # 替换为你的证书实际路径 cert_file = "/path/to/your/certificate.crt" response = requests.post(link, data=data, verify=cert_file)- 导出目标网站的SSL证书:通过浏览器访问该链接,点击地址栏的锁形图标,将证书导出为
更新本地CA证书库
如果是本地CA证书库过时,无法识别合法证书,可根据系统更新证书:- Linux(Debian/Ubuntu):执行命令
sudo update-ca-certificates - Linux(CentOS/RHEL):执行命令
sudo yum update ca-certificates - macOS:通过Homebrew安装更新
ca-certificates,或在系统设置中手动更新根证书 - Windows:在系统设置的「更新和安全」中检查并更新根证书
- Linux(Debian/Ubuntu):执行命令
内容的提问来源于stack exchange,提问作者user19863927
相关产品推荐
相关产品推荐

