关闭了 ssl 验证还是报错了,但是同环境下浏览器和 postman 正常访问
import requests
resp = requests.get("https://66.211.97.51", timeout=5, verify=False)
requests.exceptions.SSLError: HTTPSConnectionPool(host='66.211.97.51', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_BAD_REC
该问题可能是由于服务器证书无效或不被信任导致的。您可以尝试以下解决方法:
-
更新证书库:确保您的操作系统上的证书库是最新的。您可以尝试更新操作系统或手动更新证书库。
-
指定可信任的证书路径:使用
verify
参数指定一个可信任证书的路径,可以是一个单独的证书文件或一个包含多个证书的文件夹。resp = requests.get("https://66.211.97.51", timeout=5, verify="/path/to/trusted/cert.pem")
-
添加远程服务器证书到信任列表:将远程服务器的证书添加到操作系统的信任列表中。具体步骤可能因操作系统而异,请参考操作系统的文档以了解如何添加证书。
a. 使用浏览器访问
https://66.211.97.51
,确保可以成功连接并无证书错误。
b. 导出服务器证书:在浏览器中找到证书详细信息,并导出为cert.crt
文件。
c. 添加证书到信任列表:按照操作系统的指导手册,将证书添加到信任列表中。
d. 重启 Python 进程:重启您的 Python 程序,确保它重新加载了证书库。 -
更新 OpenSSL 库:如果您使用的是较旧的 OpenSSL 版本,可能会遇到某些兼容性问题。您可以尝试检查 OpenSSL 版本,并根据需要进行更新。
import ssl print(ssl.OPENSSL_VERSION)
如果您的 OpenSSL 版本较旧,可以根据操作系统的指导手册更新 OpenSSL。
如果您尝试了以上方法仍然无法解决问题,可能是由于其他原因导致的。您可能需要进一步调查服务器和客户端之间的差异,或者与网络管理员联系以获取更多帮助。