所以我做了一个小工具,一个控制台应用程序,当在Win7上运行时带来了安全盒(UAC)。 我尝试使用以下步骤在VS 2010中签署此EXE文件:
1-项目属性
2-签字
3-创建新密钥,如下所示
密钥文件已成功创建,您可以在下面的捕获中看到。
文件仍然被安全框阻止,当我使用signtool.exe检查文件是否签名时,它告诉我,没有找到签名。 如果我采取了错误的步骤,请纠正我。
答案 0 :(得分:6)
程序集签名!= Authenticode签名。
要使用signtool对authenticled签名,您需要来自受信任的颁发机构的代码签名证书。
然后,您可以发出以下post-build命令来签署可执行文件:
"signtool.exe" sign /f "$(SolutionDir)myCertificate.pfx" /p certPassword /d "description" /du "http://myinfourl" /t "http://timeserver.from.cert.authority/" $(TargetPath)
答案 1 :(得分:1)
基本上,您有两个选项,使用您通过批处理文件手动执行或执行的命令
signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /f "D:\Source\Certificates\CodeSign.pfx" /as /p MyPassword "{path to exe}"
一段时间后,变得有点沮丧 最好将它添加到Build Events中项目的选项页面上。
在您的帖子构建中,您将输入
call "C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /f "D:\Source\Certificates\CodeSign.pfx" /p MyPassword $(TargetPath)
宏 $(TargetPath)将填充已编译的exe或dll的路径。
现在每次编译都会得到一个签名文件。