【问题标题】:Signing a Windows installer (.exe) for application created using Electron为使用 Electron 创建的应用程序签署 Windows 安装程序 (.exe)
【发布时间】:2017-05-22 06:14:03
【问题描述】:

我有一个使用 Electron 框架 构建的简单应用。我使用electron-packager-interactive 打包了代码。我还创建了一个 Windows 安装程序文件,它可以使用 Inno Setup 编译器(单个 .exe 文件)进行分发。

这里的问题是当用户运行 .exe 文件时,来自 Windows 智能屏幕 的弹出窗口会阻止它说发布者是 unknown。只有在“更多信息”之后,它才允许使用“Run Anyway”进行安装。可能是因为我的申请是not signed。那么任何人都可以帮助我如何签署电子应用程序(Windows 应用程序),以便将其视为受信任的应用程序

谢谢

【问题讨论】:

  • 您的问题令人困惑。我假设您要签署由 Inno Setup 构建的“安装程序”。那么为什么你的问题是"Signing an Electron app"?这个问题和“电子”有什么关系?
  • 因为它是使用电子框架构建的。我假设我们必须在打包之前签署代码。
  • 是什么让你这么认为?如果您在安装程序启动之前就收到“智能屏幕”块,那么 Windows 几乎不知道安装程序中有 Electron 二进制文件。
  • 哦,好的。也许你是对的。我在某处读到我必须在包装前签署代码,这让我这么想。无论如何,你知道如何对 Inno setup 创建的 .exe 文件进行签名吗?
  • 好吧,当然,无论如何你都应该签署代码。但我只是认为这不是你的直接问题。

标签: windows inno-setup electron code-signing electron-packager


【解决方案1】:

您主要必须签署安装程序。

为此,设置 Inno Setup SignTool directive。请参阅指令文档。


虽然一旦你拥有了证书和一切,也可以签署(电子)应用程序本身。

Inno Setup 编译器可以为您做到这一点。打包前不必自己手动签署 .exe。

只需在 .exe 的[Files] 部分条目中设置sign(或signonce)标志:

Source: "MyProg.exe"; DestDir: "{app}"; Flags: sign

【讨论】:

  • 谢谢。我这样做了,但是在编译时,错误显示“签名工具失败,退出代码 0x1”。我在 inno setup "signtool="PATH_TO_SIGNINTOOL\signtool.exe" sign /f "PATH_TO_CERTIFICATE.PFX" /p "PASSWORD" /t timestamp.verisign.com/scripts/timstamp.dll "PATH_TO_SETUP_FILE"" 中配置了以下配置。我该如何解决这个问题?
  • 虽然一个明显的问题是您不能使用安装文件的显式路径,但您必须使用$f 占位符,因为签名的不仅仅是安装文件。
  • 我尝试了所有signtool命令的组合。我也在最后添加了“$f”,但没有变化。 Signtool 错误显示“未找到符合所有给定条件的证书”。我使用 makecert 创建了一个测试证书。
  • 首先,使用makecert 创建的证书进行签名对您没有帮助。您需要由受信任的机构颁发的证书。但是,如果您希望它用于测试目的,请确保您已将其添加到“受信任的根证书颁发机构”中,如下所述:blogs.msdn.microsoft.com/winsdk/2009/11/13/…
猜你喜欢
  • 2017-01-29
  • 2017-09-09
  • 2016-07-23
  • 2013-05-13
  • 1970-01-01
  • 2019-05-02
  • 2016-06-14
  • 2022-01-16
相关资源
最近更新 更多