Electron Forge构建Linux(Ubuntu)包代码签名问题求助
Ubuntu平台Electron Forge安装包代码签名方案(解决“潜在不安全”提示)
Ubuntu下DEB包弹出“潜在不安全”提示,核心原因是包未被系统信任的GPG密钥签名。以下是完整的签名及信任配置方案:
1. 生成GPG密钥对
首先创建用于签名的GPG密钥:
- 执行密钥生成命令:
按提示选择RSA密钥类型(推荐4096位长度)、设置有效期,填写姓名、邮箱等身份信息,完成密钥创建。gpg --full-generate-key - 导出公钥(用于用户端信任配置):
gpg --armor --export your-email@example.com > public.key
2. 用dpkg-sig签名DEB包
你尝试的dpkg-sig是Ubuntu下签名DEB包的标准工具,正确操作步骤如下:
- 安装dpkg-sig:
sudo apt install dpkg-sig - 签名Electron Forge生成的DEB包:
注:dpkg-sig --sign builder your-app.debbuilder是签名标识,也可使用origin等类型,需确保GPG密钥在当前环境中可用(可通过gpg --list-keys确认)。 - 验证签名有效性:
输出中出现dpkg-sig --verify your-app.debGOODSIG即表示签名成功。
3. 让用户系统信任你的公钥
仅签名包不足以消除安全提示,必须让用户将你的公钥加入系统信任列表:
新版Ubuntu推荐方式
- 用户执行以下命令导入公钥:
若你提供软件源,可同时添加源配置(以APT源为例):sudo install -m 0755 -d /usr/share/keyrings sudo cp public.key /usr/share/keyrings/your-app-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/your-app-archive-keyring.gpg] https://your-repo-url stable main" | sudo tee /etc/apt/sources.list.d/your-app.list
旧版Ubuntu兼容方式
- 用户直接导入公钥:
sudo apt-key add public.key
4. Electron Forge集成自动签名
在forge.config.js中配置DEB构建器,实现打包时自动签名:
module.exports = { makers: [ { name: '@electron-forge/maker-deb', config: { options: { sign: true, signArgs: ['--sign', 'builder', '$DEB'] } } } ] };
注意:构建环境中需确保GPG密钥已正确加载,可通过设置GNUPGHOME环境变量指定密钥存储路径,或确保密钥在构建用户的密钥环中。
内容的提问来源于stack exchange,提问作者Akshay Desai
相关产品推荐
相关产品推荐

