我正在给我的可执行文件应用数字签名。在Windows XP或Windows Vista上使用signtool
:
>signtool.exe sign /f "avatar.pfx" MyApp.exe
自动将整个认证链包含在数字签名中。
从Windows 7开始,整个认证链不再 被 自动 包含。您必须手动包含证书,其中包括:
- 签署您的密钥的证书
- 签署签署您的密钥的证书的证书
- ...
- ...直到没有更多需要包含的证书为止
我被告知必须使用/ac
开关与signtool
实用程序一起执行此操作。
/ac FileName
指定包含要添加到签名块中的其他证书的文件。
如何获取签署我的证书的证书文件名?
这更加令人困惑,因为我没有这样的文件。我有一个未嵌入认证链的数字签名可执行文件:
Stackoverflow用户davidcl有同样的问题。在这个自问自答的答案中,他说我需要使用包含根证书、中间证书、开发者证书和私钥的PFX文件进行签名。
创建适当的PFX文件后 - 这本身就是一次艰苦的过程...
但他没有说明如何创建包含整个认证链的PFX。
>cert2spc.exe Avatar.cer Avatar.spc
b) 将SPC和私钥(pvk)合并到PFX中:>pvk2pfx.exe -pvk Avatar.pvk -spc Avatar.spc -pfx Avatar.pfx
- Ian Boyd