我想签署一个我的开源程序的静态.exe版本,以便它可以“正常”方式执行到“普通”Windows用户。
我从certum.eu购买了一个开源代码签名证书,以便能够做到这一点。
在互联网上进行一些搜索之后,我尝试使用osslsigncode 1.7.1在我的Linux机器上使用
签署exe文件osslsigncode sign -pkcs12 cert.p12 -pass "..." -h sha2 -t http://timestamp.verisign.com/scripts/timstamp.dll -in some.exe -out some-signed.exe
有人在Windows 10上测试它,会弹出一个粗略警告:“Windows保护您的PC.Windows SmartScreen阻止了无法识别的应用程序 从开始。运行此应用程序可能会使您的PC面临风险。“
所以我尝试使用本机Windows工具signtool.exe对其进行签名。我将它安装在我的旧虚拟Windows XP中(我也编译了程序;我无法访问任何其他Windows机器)并使用
签署了exe文件"C:\Programme\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f C:\cert.p12 /p "..." /t http://timestamp.verisign.com/scripts/timstamp.dll C:\some.exe
这个工具也说一切都还好,但仍然会弹出相同的警告。
这样,证书就没用了,因为“签名”的exe文件确实产生了与unsigned证书相同的警告。我非常感谢对此的帮助。