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

Python 3.11下使用slack_bolt遭遇SSL证书验证失败问题求助

问题分析与解决方案

slack_bolt 本身并无官方记录的与 Python 3.11 的 SSL 兼容问题,你遇到的证书验证失败,本质是 Python 3.11 在 CA 证书路径配置上和 3.9 存在差异,尤其在企业环境(可能存在内部证书代理)下更易出现。以下是针对性解决方法:

方法1:为slack_bolt指定企业CA证书路径

slack_bolt 依赖的 HTTP 客户端可通过环境变量或代码直接指定信任的CA证书:

  • 环境变量方式:启动脚本前设置:
    export REQUESTS_CA_BUNDLE=/path/to/company/ca.crt
    # 或针对urllib3设置
    export SSL_CERT_FILE=/path/to/company/ca.crt
    
  • 代码内配置:初始化App时传入自定义HTTP客户端,加载企业证书:
    import os
    from slack_bolt import App
    from slack_bolt.adapter.socket_mode import SocketModeHandler
    import ssl
    from slack_sdk.http_client import HttpClient
    
    # 加载企业CA证书创建SSL上下文
    ssl_context = ssl.create_default_context(cafile="/path/to/company/ca.crt")
    http_client = HttpClient(ssl=ssl_context)
    
    SLACK_BOT_TOKEN = "<bot_token>"
    SLACK_APP_TOKEN = "<app_token>"
    
    app = App(token=SLACK_BOT_TOKEN, http_client=http_client)
    
    if __name__ == "__main__":
        SocketModeHandler(app, SLACK_APP_TOKEN).start()
    

方法2:修复Python3.11的CA证书缺失问题

Python 3.11 可能未正确关联系统CA证书,不同系统处理方式如下:

  • Windows:下载企业信任的CA证书包(如cacert.pem),设置环境变量 SSL_CERT_FILE 指向该文件;或替换Python安装目录Lib\site-packages\certifi下的cacert.pem文件。
  • Linux/macOS:确保系统CA证书包已安装,将Python3.11的certifi证书链接到系统证书:
    # Linux示例
    sudo apt install ca-certificates
    ln -s /etc/ssl/certs/ca-certificates.crt /usr/local/lib/python3.11/site-packages/certifi/cacert.pem
    

方法3:临时跳过证书验证(仅测试环境使用)

绝对禁止在生产环境使用,仅用于快速排查问题:

import os
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
import ssl
from slack_sdk.http_client import HttpClient

# 创建不验证证书的SSL上下文
ssl_context = ssl._create_unverified_context()
http_client = HttpClient(ssl=ssl_context)

SLACK_BOT_TOKEN = "<bot_token>"
SLACK_APP_TOKEN = "<app_token>"

app = App(token=SLACK_BOT_TOKEN, http_client=http_client)

if __name__ == "__main__":
    SocketModeHandler(app, SLACK_APP_TOKEN).start()

额外排查点

  • 确认企业网络是否有代理,Python3.11需正确配置HTTP_PROXY和HTTPS_PROXY环境变量;
  • 更新slack_bolt到最新版本:pip install --upgrade slack-bolt slack-sdk

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:47:03