使用 EV 代码签名来歌唱 ClickOnce 应用程序

问题描述 投票:0回答:2

我有来自 ssl.com 的 EV 代码签名证书,我正在尝试对 ClickOnce 应用程序进行签名,以在用户安装该应用程序时消除警告消息,但是,到目前为止我还无法做到这一点。证书已正确配置,因为我可以使用 SignTool.exe 来签署 setup.exe,但这还不够,因为我显然需要按照这篇MS 文章使用 Mage.exe 来签署 .manifest 和 .deploy 文件。但是,通过存储在硬件令牌上的私钥,我得到此命令的以下结果(注意,我在 Windows 10 上使用 Mage 版本 4.8.3928.0 和 Visual Studio 2019):

mage -Update "MyApp.exe.manifest" -CertHash "xxxxxxx" -csp "Microsoft Smart Card Key Storage Provider" -KeyContainer xxxxxxx

This certificate does not contain a private key - "xxxxxxx"
This certificate cannot be used for signing - "xxxxxxx"

请注意,在这篇文章中,来自 Microsoft 的 TanyaSolyanik 表示 Mage.exe 版本 4.7 仅支持存储有私钥的证书,4.7.1 将修复此问题。我用的是4.8版本,但还是不行。

我想我读了谷歌能找到的每一篇文章,以及我能找到的每一个相关的 stackoverflow 问题,但没有任何帮助。 请注意,像thisone这样的一些问题讨论了使用 Visual Studio 发布中的内置签名功能,但是,当我尝试此操作时,我在商店的证书列表中找不到我的 EV 证书,因为它没有私钥。

clickonce code-signing codesign
2个回答
1
投票

为了防止其他人遇到这种情况,我放弃了尝试使用 EV 代码签名证书来签署我的 ClickOnce 应用程序。我添加了一个安装项目并使用 MSI 安装程序部署了我的应用程序。 程序集是使用生成后事件进行签名的,并且 MSI 和 setup.exe 在安装项目生成后事件中进行了签名。这工作完美,我的最终应用程序已安装,没有未知发布者和其他 UAC 警告。


0
投票

查看此主题使用 mage.exe 自动进行扩展验证 (EV) 代码签名

简版:MageUi.exe 支持您找到正确的配置。

就我而言,分配了错误的 CSP 名称。 “SafeNet 智能卡密钥存储提供程序”有效,而不是“eToken Base Cryptographic Provider”(在signtool.exe 中正确)。

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