企业网络环境下Telegram Bot代理配置的SSLError证书验证问题求助
解决Telebot代理下的SSL证书验证问题
我之前也碰到过企业网络环境里Telegram机器人开发的SSL证书坑,结合你的情况,给你几个可行的解决方案:
方案1:修改Telebot底层的Requests会话
Telebot本质是基于requests库实现的,我们可以直接修改它的会话配置,复用你在requests里的成功逻辑:
import telebot import json from telebot import apihelper import urllib3 # 关闭烦人的SSL警告 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) with open('params.json', 'r', encoding='utf-8') as f: data = json.load(f) username = data['username'] password = data['password'] access_token_tg = data['access_token_tg'] bot = telebot.TeleBot(access_token_tg) # 配置代理(注意这里去掉了URL里多余的空格) apihelper.proxy = {'https': f'https://{username}:{password}@10.0.18.139:3131'} # 关键:给bot的requests会话禁用证书验证 bot.session.verify = False print(bot.get_me())
这个方法直接让telebot使用和你测试requests时一样的证书验证规则,应该能快速解决问题。
方案2:配置企业自签名证书(更安全)
如果企业有自己的CA证书文件(比如.pem或.crt格式),推荐用这个方案,比禁用验证更安全:
import telebot import json from telebot import apihelper with open('params.json', 'r', encoding='utf-8') as f: data = json.load(f) username = data['username'] password = data['password'] access_token_tg = data['access_token_tg'] # 替换成你企业CA证书的实际路径 ca_cert_path = "/opt/company/ca-cert.pem" bot = telebot.TeleBot(access_token_tg) apihelper.proxy = {'https': f'https://{username}:{password}@10.0.18.139:3131'} # 指定用企业证书验证SSL连接 bot.session.verify = ca_cert_path print(bot.get_me())
方案3:切换到Aiogram库(更灵活的现代框架)
你之前试过aiogram但可能没配置对,它支持自定义会话,处理代理和SSL验证非常直观,而且是异步框架,长期维护更省心:
import asyncio import json from aiogram import Bot, Dispatcher from aiogram.client.session.aiohttp import AiohttpSession with open('params.json', 'r', encoding='utf-8') as f: data = json.load(f) username = data['username'] password = data['password'] access_token_tg = data['access_token_tg'] # 创建带代理和SSL配置的自定义会话 session = AiohttpSession( proxy=f'http://{username}:{password}@10.0.18.139:3131', # 禁用验证,或者替换成证书路径:verify_ssl="/opt/company/ca-cert.pem" verify_ssl=False ) bot = Bot(token=access_token_tg, session=session) async def main(): me = await bot.get_me() print(me) if __name__ == '__main__': asyncio.run(main())
Aiogram的社区活跃度更高,文档也更完善,适合复杂的机器人开发需求。
总结
- 想继续用telebot的话,优先试试方案2(配置企业证书),安全性更高;如果证书拿不到,方案1可以快速解决问题;
- 要是打算长期开发机器人,推荐切换到Aiogram,它的代理和SSL配置逻辑更清晰,后续扩展功能也更方便。
内容的提问来源于stack exchange,提问作者Vadim
相关产品推荐
相关产品推荐

