首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用EV ClickOnce证书对SHA2部署进行Authenticode签名,并避免“未知发布者”

如何使用EV ClickOnce证书对SHA2部署进行Authenticode签名,并避免“未知发布者”
EN

Stack Overflow用户
提问于 2016-09-16 18:59:43
回答 5查看 5.3K关注 0票数 7

当通过Visual的项目“签名”设置页对我的ClickOnce部署进行签名时,我指定了我们的SHA2 (SHA256) EV Authenticode证书和发布。

在发布并尝试运行引导程序(setup.exe)之后,我将在ClickOnce对话框中显示“未知发布者”。

所讨论的EV证书是有效的,并且运行在带有eToken客户端工具的SafeNet硬件令牌上,以便与令牌通信。使用签名工具对常规PE文件(exe和dll)进行签名总是会产生完全有效的程序集,并且发行者是已知的。这只是ClickOnce部署的一个问题。此外,ClickOnce部署的各个文件看起来非常有效,因为文件属性对话框的“数字签名”选项卡为引导程序(setup.exe)正确列出,程序集文件后缀为".deploy“。

此外,".application“和".manifest”文件也会适当地变异(可能是通过Visual的mage ),以包含<publisherIdentity>元素以及正确设置的算法。

签名机正在运行Win10,我已经尝试了我能想象到的每一个置换:

  • 有和没有时间戳
  • 有和没有强名称签名
  • 有和没有在线出版
  • 有和没有https联机发布
  • 通过发布页面有和没有特定的“更新位置”
  • 通过发布页面中的描述设置"Publisher名称“和不带”Publisher name“
  • 包含所有组合的报表选项:
    • 排除部署提供程序URL
    • 阻止通过URL激活应用程序
    • 使用应用程序清单获取信任信息

  • Windows不同版本上的多台计算机
  • 通过mage和签名工具进行手动清单签名和组装签名(也是mageui )
  • 确保证书提供程序不会撤销证书。

这里似乎有其他人也在经历这一切

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-09-16 19:57:48

发生这种情况的原因是由于的几个因素

  1. ClickOnce在使用SHA2 Authenticode证书时显示“未知发行者”。
  2. 2016年1月1日,Windows否决了SHA1的授权代码签名/code签名。因此,Windows SmartScreen技术在使用SHA1 Authenticode证书时显示“未知发行者”。

这实际上是一个CATC-22,您需要SHA1进行ClickOnce发行者验证,SHA2用于SmartScreen。好的。

使用您的证书提供程序(希望是一个真正的CA)为您提供一个SHA1 SHA2证书。DigiCert的人都很棒。在大多数情况下,您必须使用您的CA,因为即使您已经拥有自己的SHA2证书并与它们一起工作,也可以获得SHA1证书(或者相反),它可能会自动撤消与它们一起的任何现有证书。在DigiCert的情况下,当我解释我想尝试什么(双重签名)时,他们能够防止自动撤销。

在EV令牌上安装这些标记之后,请配置Visual以使用ClickOnce证书对您的SHA1清单进行签名。理想情况下,您还将在同一个对话框中提供时间戳服务器,以便证书最终过期。

在本地和分发之前发布ClickOnce部署之后,通过附加ClickOnce证书对SHA2引导程序(setup.exe)进行双重签名。

代码语言:javascript
运行
复制
signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /as /sha1 YourCertThumbprintHash "X:\Deployment\ClickOnceCert\setup.exe"

注意,找到您的证书拇指指纹的一种方法是通过证书MMC卡入。是的,拇指指纹应该是SHA1的SHA2证书。

现在,引导程序在“文件属性”对话框的“数字签名”选项卡中显示了这两个证书。

当您从Visual中发布页的“安装文件夹URL”指定的位置运行setup.exe时,应将发布服务器视为受信任的。理解安装文件夹很重要,因为如果您要从另一个位置运行该应用程序,您应该期望它不会被信任,因为引导程序将调用已知的安装文件夹来检索Application。

票数 3
EN

Stack Overflow用户

发布于 2018-12-06 00:15:04

如果您正在寻找更适合Azure DevOps CI/CD管道的东西,我已经使用了Joe的工作,并为我的管道重构了它。在github 这里

您可以传递脚本一个pmx文件路径和密码,它将修改证书,安装它,并对可执行文件、安装文件、清单文件和应用程序文件进行签名。

请帮助我做得更好:)

票数 3
EN

Stack Overflow用户

发布于 2018-08-03 10:48:02

由于VisualStudio15.7.5(或者之前的版本,我没有检查它们),当使用setup.exe EV代码签名证书签名时,ClickOnce和应用程序二进制文件都是有效的(无需向证书提供程序询问SHA2 -1)。我使用的是Windows 10 (10.0.16299.492),我们在Windows 8上也进行了检查,两者都很好。我不知道这是Visual或SmartScreen的更新版本的影响。一年前,我没有发布一个签名的ClickOnce应用程序,现在一切都很好。

主要应用程序项目签名属性:

“从商店中选择”对话框:

已发布的ClickOnce setup.exe属性

发布的ClickOnce应用程序*.exe.deploy文件属性

安装提示,绿色的,漂亮的:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39538466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档