使用Certum证书进行代码签名

Tob*_*old 5 windows code-signing code-signing-certificate signtool

我想签署一个我的开源程序的静态.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
Run Code Online (Sandbox Code Playgroud)

有人在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
Run Code Online (Sandbox Code Playgroud)

这个工具也说一切都还好,但仍然会弹出同样的警告.

这样,证书就没用了,因为"签名"的exe文件确实产生了与未签名的文件完全相同的警告.我非常感谢这方面的帮助.

sel*_*bie 6

在此输入图像描述

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

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

最重要的是,您的新证书和签名的二进制文件需要一些时间才能获得 Microsoft 代码签名信誉服务的信任并自动验证。

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