Fra*_*rup 5 windows sha256 authenticode signtool
我多年来一直使用 SHA1 签名,但从 2016 年开始,Windows 强制开发人员使用 SHA256。
Windows 对 Authenticode 代码签名和时间戳的强制执行
通过使用 Windows 7 SDK signtool,对 SHA-256 进行签名的函数是“未知命令”,因此此 signtool 作为 signtool 已过时,不应再使用。
为了使用 SHA256 进行签名,我下载了 Windows 8.1 SDK 以获取具有新功能(/fd 和其他一些功能)的 signtool.exe。BAT 文件和 signtool 适用于 Windows 8 和 10,所以我知道它可以工作,但在 Windows 7 上尝试为文件添加时间戳时会崩溃。
我使用 bat 文件对文件进行签名,如下所示(我编辑了 BAT 文件,因此它不显示变量、完整路径、公司名称和密码):
Path\signtool.exe sign /f "Path\Certificate.p12" /fd sha256 /p *password* /du "URL" /tr "timestampServer?td=sha256" /td sha256 /d "Product name" "Filename"
Run Code Online (Sandbox Code Playgroud)
我想,我没有合适的 SDK 来支持某些功能,但我在互联网上找不到任何关于如何在 Windows 7 上设置它的信息。我尝试安装 MS Visual C++ 2015 Redistributable (x64 ) 在我的机器上没有解决问题。
看来我不擅长读书。我正在回答我自己的问题,因为其他人可能会发现很难找到,就像我一样。
Windows 不再支持 Windows 7 上的signtool.exe,因此这就是为什么 SHA-1 签名等旧的/过时的功能仍然有效,但 SHA-256 时间戳是一个问题。我在 MSDN 上找到了这个:
引用自 MSDN: 注意 您只能使用 SignTool 在 Windows 8 及更高版本或 Windows Server 2012 及更高版本上对 Windows 应用商店应用程序包进行签名。您无法使用 SignTool 在 Windows 7 或 Windows Server 2008 R2 等下层操作系统上对应用程序包进行签名。
如果您想阅读全文,请看这里:
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |