You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python Requests访问证书异常站点遇[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE]错误的解决求助

Python Requests访问证书异常站点遇[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE]错误的解决求助

我现在碰到一个棘手的问题:需要从一个存在证书问题的URL获取数据,用curl -k(跳过证书验证)能正常拿到数据,但用Python的requests库即使加上verify=False参数,还是会抛出[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE]错误,有没有大佬知道怎么解决这个问题?

我使用的环境是Python 3.10.12 + requests 2.32.3,以下是我用来测试的代码:

import os
import requests

# 直接用curl请求失败
teste = os.system("curl -o capabilities.xml 'https://geoserver.car.gov.br/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities'")

# 加上-k跳过证书验证后,curl请求成功
teste = os.system("curl -k -o capabilities.xml 'https://geoserver.car.gov.br/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities'")

# 尝试用Python Requests请求
url = "https://geoserver.car.gov.br/geoserver/ows"
params = {
    'service':'WMS',
    'version':'1.3.0',
    'request':'GetCapabilities'
}

# 直接请求,抛出证书错误
teste = requests.get(url, params)

# 加上verify=False还是失败
teste = requests.get(url, params, verify=False)

更新
经过排查,发现这个站点仅支持TLS 1.2加密套件,看起来Python Requests默认不兼容这个配置,有没有办法让Python强制使用TLS 1.2来建立连接呢?

站点TLS配置信息

备注:内容来源于stack exchange,提问作者Daniel

火山引擎 最新活动