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

如何为PyInstaller生成的便携exe文件签名以解决跨设备无法运行问题

Windows 下 PyInstaller 打包EXE签名分步操作指南

以下操作仅适用于小范围给熟人分发EXE的场景,如果需要对外给大量陌生用户分发,需要购买受公共信任的CA机构颁发的正规代码签名证书。

1. 准备签名工具

  • 优先安装 Visual Studio 社区版,安装时勾选「使用C++的桌面开发」组件,安装完成后系统会自动配置好签名工具signtool.exe的环境
  • 也可以单独安装 Windows SDK,安装完成后signtool.exe默认路径为C:\Program Files (x86)\Windows Kits\10\bin\<对应系统版本号>\x64\signtool.exe
  • 所有后续命令操作都需要用管理员权限打开「x64 Native Tools Command Prompt for VS」(VS开发者命令提示符)执行

2. 生成自签名根证书

  • 在管理员权限的PowerShell中执行以下命令生成自签名根证书:
New-SelfSignedCertificate -Type Custom -Subject "CN=MyTestRootCA, O=Personal, C=CN" -KeyUsage DigitalSignature,CertSign -FriendlyName "MyTestRootCA" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10)
  • 命令执行成功后会返回证书的SHA1指纹,复制保存这串指纹,后续步骤会用到

3. 导出证书文件

  • 按下Win+R输入certmgr.msc打开当前用户证书管理器,进入「当前用户 → 个人 → 证书」目录,找到名为MyTestRootCA的证书
  • 右键点击证书选择「所有任务 → 导出」:
    • 第一次导出选择「是,导出私钥」,格式选择PFX,设置自定义密码,保存为myrootca.pfx到本地路径
    • 第二次导出选择「不,不要导出私钥」,格式选择DER编码二进制X.509,保存为myrootca.cer,该文件需要发给运行EXE的用户安装

4. 签名EXE文件

  • 回到管理员权限的VS开发者命令提示符,执行以下命令完成签名:
signtool sign /f 你的pfx文件完整路径 /p 你设置的pfx证书密码 /t http://timestamp.digicert.com /v 你要签名的EXE文件完整路径
  • 命令返回「Successfully signed: xxx.exe」即为签名成功

5. 对方设备配置信任证书

  • 把导出的myrootca.cer发给运行EXE的用户,让用户双击打开证书,选择「安装证书」
  • 存储位置选择「本地计算机」,下一步后选择「将所有证书都放入下列存储」,点击「浏览」选择「受信任的根证书颁发机构」,确认完成安装
  • 安装完成后再运行签名后的EXE就不会出现未签名拦截问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:54:11