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。还是没成功。
首先,我仍然非常失望,Visual Studio 似乎无法发布带有时间戳的安装文件,该时间戳在底层证书过期后将继续工作。天哪,那会节省我很多时间和精力。
其次,StackOverflow 向我指出“如何使用 mage.exe 为 VSTO 放弃清单”,我在自己的搜索中错过了它。哎呀。谢谢 user783836 和 Portalus。基于此,以下是我如何让它发挥作用的概述。一切都在 CMD 批处理文件中。有一天我会学习 PowerShell。
法师