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

在其他电脑运行PyInstaller生成的EXE时出现SSL证书验证失败错误

问题分析与解决方案

核心原因

这个报错本质是目标电脑的系统根证书存储中缺少对应SSL证书的颁发机构证书,哪怕两台电脑配置看起来一致,也可能存在这些差异:

  • 其中一台电脑此前访问过目标XML-RPC服务,浏览器或其他应用已自动安装了所需根证书;
  • 两台电脑的系统根证书更新不同步,比如一台安装了最新的根证书补丁,另一台未更新;
  • 其中一台电脑的管理员手动导入过该服务的根证书,另一台没有;
  • 部分安全软件(杀毒、防火墙)拦截了证书验证流程,或修改了系统证书存储。

解决办法

1. 手动导入根证书

找到目标XML-RPC服务SSL证书对应的根颁发机构证书,在报错的电脑上操作:

  • 打开控制面板 → 管理工具 → 证书管理器;
  • 定位到「受信任的根证书颁发机构」,右键选择「所有任务」→「导入」;
  • 按照向导完成根证书文件(.cer或.pem格式)的导入。

2. 打包时将证书嵌入程序

如果不想依赖目标电脑的证书存储,可把需要的证书打包进EXE:

  • 将根证书文件(比如ca_cert.pem)放在项目目录下;
  • 修改connect.py中建立连接的代码,指定证书路径:
import xmlrpc.client

client = xmlrpc.client.ServerProxy(
    "https://你的服务地址/",
    ssl_ca_certs="./ca_cert.pem"
)
  • 用PyInstaller打包时,通过--add-data参数将证书纳入打包范围:
pyinstaller --add-data "ca_cert.pem;." main.py

(Windows系统用;分隔路径,Linux/macOS用:)

3. 临时跳过证书验证(仅测试环境可用)

如果是内部测试场景、安全性要求极低,可临时关闭证书验证,但生产环境绝对禁止使用:

import xmlrpc.client
import ssl

context = ssl._create_unverified_context()
client = xmlrpc.client.ServerProxy(
    "https://你的服务地址/",
    context=context
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:05:16