2010-12-07 16 views
9

运行已经过数字签名的可执行文件时,我收到了一个非常奇怪的结果。为什么数字签名的可执行文件被视为未签名,直到查看证书详细信息

可执行文件使用signtool.exe使用适当的2级代码签名证书(不是自生成的)进行签名。

在Windows 7计算机上进行测试,如果我启动签名的可执行文件,则会出现窗口警告对话框,指出发布者未知(即未签名)。

但是,如果我然后取消并右键单击可执行文件并转到属性 - >数字签名,签名列表将显示签名证书,然后我可以单击并选择“详细信息”以查看详细信息该签名显示为“数字签名确定”。

此时,如果我启动可执行文件,现在所有突然的窗口都能正确识别出exectuable已签名并报告了正确的“已验证的发布者”。

这似乎也许Windows没有在线检查证书,直到我去查看可执行文件的属性对话框中的实际证书详细信息(请注意,启动可执行文件不仅仅是延迟,它并不重要我等待多少时间,或者多少次启动它,它将它视为未签名,直到我进入文件的属性/数字签名为止)。

这是我用于测试的通用Windows 7安装 - 它没有以任何方式进行修改或调整。

这种行为似乎打败了Windows上代码签名的主要目的 - 它怎么会将可执行文件视为未签名,除非用户知道进入右键单击属性并为证书进行挖掘。

有什么我失踪了吗?将可执行文件标记为Windows应主动检查执行时的证书的一种方法?

+0

您是否管理此问题?我面对同样的事情? – adlabac 2016-03-22 12:38:34

+0

我也观察到了这一点。有时候,如果我只保留几分钟,再次运行程序会显示已验证的“蓝色”对话框。但我也观察过观看信号'修复'它。 – 2016-09-09 14:58:32

回答

1

无论出于何种原因(连接问题等),最有可能的OCSP撤销无法自动检查。您需要在更多系统上执行测试以缩小问题范围。