gpt4 book ai didi

clickonce - 如何使用 EV SHA2 证书对 ClickOnce 部署进行身份验证代码签名并避免 "Unknown Publisher"

转载 作者:行者123 更新时间:2023-12-04 14:56:10 25 4
gpt4 key购买 nike

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

enter image description here

发布并尝试运行 bootstrap (setup.exe) 后,我在 ClickOnce 对话框中看到“未知发布者”。

enter image description here

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

enter image description here

此外,“.application”和“.manifest”文件被适本地改变(可能通过Visual Studio的法师)以包含<publisherIdentity>元素以及正确设置的算法。

enter image description here

签名机正在运行 Win10,我已经尝试了我能想象到的所有排列:

  • 带和不带时间戳
  • 有和没有强签名
  • 有无在线出版
  • 有无https在线发布
  • 通过发布页面使用和不使用特定的“更新位置”
  • 通过发布页面中的描述设置和不包含“发布者名称”
  • 使用 Manifest 选项的每种组合:
  • 排除部署提供程序 URL
  • 阻止通过 URL 激活应用程序
  • 使用应用程序 list 获取信任信息
  • 各种版本的 Windows 上的多台机器
  • 通过 mage 和 signtool 手动 list 签名和程序集签名(也是 mageui)
  • 确保证书没有被证书提供者撤销

  • 似乎有 someone else experiencing this .

    最佳答案

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

  • 使用 SHA2 Authenticode 证书时,ClickOnce 会显示“未知发布者”。
  • 2016 年 1 月 1 日,Windows 弃用了用于 Authenticode 签名/代码签名的 SHA1。因此,当使用 SHA1 Authenticode 证书时,Windows SmartScreen 技术会显示“未知发布者”。

  • 这实际上是一个 catch-22 ,您需要 SHA1 用于 ClickOnce 发布者验证和 SHA2 用于 SmartScreen。好的。

    与您的证书提供商(希望是真正的 CA)合作以获得 SHA1 SHA2 证书。 DigiCert 的人很棒。在大多数情况下,您必须与您的 CA 合作,因为即使您已经拥有自己的 SHA2 证书并且您与他们合作以获得 SHA1 证书(或反之亦然),它也可能会自动撤销您拥有的任何现有证书.在 DigiCert 的情况下,当我解释我想尝试的内容(双重签名)时,他们能够阻止自动撤销。

    在您的 EV token 上安装这些之后,配置 Visual Studio 以使用您的 SHA1 证书签署您的 ClickOnce list 。理想情况下,您还将在同一个对话框中提供一个时间戳服务器,以便您的证书最终到期。

    enter image description here

    在本地发布 ClickOnce 部署之后和分发之前,通过附加您的 SHA2 证书对您的 ClickOnce bootstrap (setup.exe) 进行双重签名。
    signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /as /sha1 YourCertThumbprintHash "X:\Deployment\ClickOnceCert\setup.exe"

    请注意,查找证书指纹的一种方法是通过证书 MMC 管理单元。是的,对于 SHA2 证书,指纹应该是 SHA1。

    enter image description here

    现在, bootstrap 在文件属性对话框的数字签名选项卡中显示您的两个证书。

    enter image description here

    当您从 Visual Studio 中“发布”页面的“安装文件夹 URL”指定的位置运行 setup.exe 时,您应该看到发布者为受信任的。了解安装文件夹很重要,因为如果您要从另一个位置运行应用程序,您应该期望它不受信任,因为 bootstrap 将调用已知的安装文件夹以检索应用程序文件。

    enter image description here

    关于clickonce - 如何使用 EV SHA2 证书对 ClickOnce 部署进行身份验证代码签名并避免 "Unknown Publisher",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39538466/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com