Codeign Electron App - 如何优雅地切换证书?

问题描述 投票:3回答:1

我有一个电子应用程序,最初是为个人开发人员分发的证书。

我现在想用我的组织的证书签署该应用程序的下一次更新,但是当我这样做时,现有的安装(在自动更新时)会抛出错误,导致代码要求不符合。

有没有办法用旧证书和新证书正确签署电子应用程序?我想阻止我的现有用户被打断。

任何帮助赞赏!

谢谢

code-signing electron codesign code-signing-certificate electron-builder
1个回答
2
投票

我们有类似的情况,使用自动更新的MacOS电子应用程序,我们需要切换到新证书,而不是让所有人手动下载和重新安装应用程序。自动更新过程需要识别新证书。这是正确的,如果无法识别新证书,旧版本将拒绝更新。

我们的策略是:

  • 使用designated requirement查看应用程序的codesign -d -v -r - <path-to-app>(或DR),当使用旧证书签名时
  • 使用新证书签名时查看应用程序的designated requirement
  • 将包含两个证书的组合designated requirement放入electron-builder-requirements.txt文件中
  • 确保你没有在identifier组合字符串中包含designated requirement
  • electron-builder-requirements.txt文件中引用electron-builder.yaml(在mac:下添加一行,如requirements: electron-builder-requirements.txt
  • 发布使用旧证书签名的应用程序的新版本,但使用包含两个证书信息的DR
  • 等到几乎每个人都在他们的桌面上运行版本,其中包括在DR中提及两个证书
  • 更新构建,以便它使用新证书,并删除electron-builder-requirements.txt文件
  • 发布使用新证书签名的新版本应用程序(不需要任何需求文件,并且它将仅在DR中列出其自己的证书)

具有包含两个证书信息的DR的旧版本应用程序将允许自动更新使用任一证书的新版本。

我发现this document about signing code manually有助于理解“指定要求”。

© www.soinside.com 2019 - 2024. All rights reserved.