You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级requests至2.32.2后python-keycloak遇SSL证书验证失败求助

问题分析与解决方案

requests版本变更的影响

requests 2.32.x版本确实对SSL证书验证逻辑做了调整,核心变化包括:

  • 升级了内置的Mozilla CA证书 bundle,原本被旧版本默认信任的自签名/内部CA证书,可能不再被新版本认可
  • 收紧了证书链的验证规则,修复了旧版本中存在的宽松验证逻辑,现在会严格检查证书链的完整性

这就是你升级后触发SSLCertVerificationError的直接原因——旧版本requests可能默认绕过了Keycloak自签名证书的部分验证,新版本则严格执行了标准验证流程。

修复方案

方案1:信任自定义CA证书(推荐生产环境)

将Keycloak的自签名CA证书加入请求信任列表:

  1. 导出Keycloak的CA证书(可从Keycloak服务器conf/目录获取,或通过浏览器访问Keycloak页面后导出证书)
  2. 初始化KeycloakOpenID时,通过verify参数指定证书路径:
keycloak_openid = KeycloakOpenID(
    server_url=KEYCLOAK_URL,
    client_id="dashboard-app",
    realm_name="dashboard",
    client_secret_key=_KEYCLOAK_SECRET_KEY_,
    verify="/path/to/keycloak-ca.crt"
)

如果该CA证书已添加到系统全局信任库,直接保持verify=True(默认值)即可,requests会自动读取系统信任的证书。

方案2:临时禁用SSL验证(仅测试环境)

测试环境下可临时关闭验证,但生产环境绝对禁止:

keycloak_openid = KeycloakOpenID(
    server_url=KEYCLOAK_URL,
    client_id="dashboard-app",
    realm_name="dashboard",
    client_secret_key=_KEYCLOAK_SECRET_KEY_,
    verify=False
)

注意:禁用验证会使请求暴露在中间人攻击风险下。

方案3:升级python-keycloak版本

python-keycloak 4.0.0发布于2021年,对高版本requests的适配可能存在不足。尝试升级到最新稳定版(当前为4.5.x),新版本大概率修复了与requests 2.32+的兼容性问题:

pip install --upgrade python-keycloak

内容的提问来源于stack exchange,提问作者Dirk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:18:13