使用 Certum 证书进行代码签名

Code Signing with a Certum certificate

我想签署我的一个开源程序的静态 .exe 版本,以便它可以 "normal" 方式对 "normal" Windows 用户执行。

我从 certum.eu 购买了一个开放源代码签名证书以便能够执行此操作。

在互联网上进行一些搜索后,我尝试在我的 Linux 机器上使用 osslsigncode 1.7.1 对 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

这个工具也说一切正常,但仍然弹出同样的警告。

这样一来,证书就毫无用处了,因为 "signed" exe 文件确实会产生与未签名文件完全相同的警告。非常感谢对此的帮助。

简短回答:等待几天,问题就会消失。

今年早些时候,我的 Certum 证书也遇到了同样的问题。几年前,我有一张从 Comodo 获得的商业证书,它最初也有同样的问题。

底线是您的新证书和签名的二进制文件需要一些时间来获得信任并由 Microsoft 的代码签名信誉服务自动验证。

开始将您签名的 exe 分发到尽可能多的 PC,并执行 "advanced" 选项以强制 exe 到 运行。这可能有助于更快地提高声誉。