Python发送GET请求出现ssl.SSLCertVerificationError,是否因公司防火墙导致?
Python requests SSL证书验证失败问题解决
是的,这个错误大概率是公司防火墙/代理导致的。很多企业会部署带有自签名证书的代理服务器,用来拦截和检查HTTPS流量,这会让requests库默认的证书验证流程失败——因为自签名证书不在系统或Python的信任列表里。
以下是几种解决方案:
临时测试方案(不安全,仅用于验证问题)
关闭证书验证,在请求中添加verify=False参数:import requests response = requests.get('https://httpbin.org/get', verify=False) print(response.headers)注意:此方法会跳过证书校验,存在安全风险,禁止在生产环境使用。
推荐安全方案:配置公司根证书
找到企业提供的根证书文件(通常为.crt或.pem格式),在请求中指定证书路径:import requests response = requests.get('https://httpbin.org/get', verify='./company-root-cert.crt') print(response.headers)也可以将证书添加到Python的全局信任证书库中,一劳永逸解决所有requests请求的证书验证问题。
配合代理使用(如果公司要求走代理)
若公司网络需要通过代理访问外部,需同时配置代理和证书:import requests proxies = { 'http': 'http://代理IP:端口', 'https': 'http://代理IP:端口', } # 若代理需要账号密码,格式为 http://用户名:密码@代理IP:端口 response = requests.get('https://httpbin.org/get', proxies=proxies, verify='./company-root-cert.crt') print(response.headers)
内容的提问来源于stack exchange,提问作者Chuck
相关产品推荐
相关产品推荐

