Visual Studio 2022 VSTO 清单没有 SHA256 加密时间戳

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

Visual Studio 不会使用加密时间戳对 vb.net Office 加载项的 ClickOnce 安装程序进行数字签名。我需要加密时间戳,以便安装程序在 Sectigo 代码签名证书于 8 月到期后继续工作,不会出现错误。

当我现在在证书到期前几个月运行安装程序时,它运行良好并显示已知的发布者。

当我尝试在日期设置为 10 月(证书过期后)的单独笔记本电脑上安装时,它显示“无法验证发布者”并列出“未知发布者”。 “From:”显示 AddIn.vsto 文件。

Setup.exe 属性显示 sha256 签名和时间戳。效果很好。

同样,我无法生成带加密时间戳的清单。我欢迎您的建议。

环境

开发和测试(10 月)笔记本电脑上的 Windows 10 Pro、22H2。

Visual Studio Pro 2022,64 位,版本 17.9.6,包含所有最新更新。显然,在 17.3 及更早版本中,法师签名存在问题,但我已经远远超出了这个范围。

该插件面向 .Net Framework 4.8。显然,VSTO 不支持任何可能使用 DotNet-Mage 而不是 Mage 的更高版本的 .Net。当我尝试在 VS 之外的清单上运行 DotNet-Mage 时,它失败了。

参考文献选集

签名页面,项目设计器 - 逐步完成签名页面 – 特别是“应用程序和部署清单签名”。它链接到下一个参考。

签署应用程序和部署清单 – 这使得签名和时间戳听起来很简单,包括:“此外,您可以在时间戳服务器 URL 文本框中指定时间戳服务器的地址。这是一个提供时间戳的服务器,用于指定何时它通常由提供 CA 签名证书的同一第三方提供。”

宣布推出 .NET Framework 4.7.2 – 宣布支持 sha256 时间戳,“ClickOnce – 启用部署清单的 SHA256 时间戳”

观察结果

清单和 .vsto 文件包含签名和时间戳,但没有证据表明它是加密时间戳。我发现一篇参考资料说我会在清单中看到加密时间戳文件的元素。从来没有出现过。

在 Visual Studio 中,我通常指定 Sectigo 时间戳服务器,http://timestamp.sectigo.com,带或不带 ?td=sha256。

我尝试过单独运行 Mage,使用或不使用“-a sha256RSA”选项。

一般法师请求:mage -sign "AddIn.vsto" -CertHash "哈希值" -TimestampUri http://timestamp.sectigo.com

我尝试指定 digicert 时间戳服务器,以防万一有帮助。没有。

为了防止 VS 从早期框架中选择旧版本的 Mage,我在 NETFX 4.5.1 和 4.0 文件夹中重命名了 Mage.exe。还是没成功。

vb.net vsto visual-studio-2022 clickonce sha256
1个回答
0
投票

首先,我仍然非常失望,Visual Studio 似乎无法发布带有时间戳的安装文件,该时间戳在底层证书过期后将继续工作。天哪,那会节省我很多时间和精力。

其次,StackOverflow 向我指出“如何使用 mage.exe 为 VSTO 放弃清单”,我在自己的搜索中错过了它。哎呀。谢谢 user783836 和 Portalus。基于此,以下是我如何让它发挥作用的概述。一切都在 CMD 批处理文件中。有一天我会学习 PowerShell。

法师

    使用-update代替-sign
  • 使用-a sha256RSA
  • 使用常规的 Sectigo 时间戳服务器 (
  • http://timestamp.digicert.com),无需 ?td=sha256
  • 在签署 .vsto 文件时使用 -appm 指定清单文件。那必须使用外部安装文件夹中的完整路径名。
批处理文件

    首先CD到应用程序文件夹(Application Files\MyAddin)
  • REN(重命名)所有 .deploy 文件以删除 .deploy 后缀
  • 首先对清单 (MyAddIn.dll.manifest) 进行签名并添加时间戳
  • 接下来在应用程序文件夹中对 .vsto 进行签名并加盖时间戳
  • REN(重命名)所有 .deploy 文件以放回 .deploy 后缀
  • CD到外部安装文件夹
  • 最后对外部安装文件夹中的 .vsto 进行签名并加盖时间戳
最后

    在我的另一台笔记本电脑上运行批处理文件,日期设置为十月。
  • 安装插件时请紧张等待。
  • 安装加载项后测试 Visio。
发布的两个 .vsto 文件是相同的。我想我可以在第一份上签名并复制它,但我没有。

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