签名的应用程序启动失败

签名的应用程序启动失败

在特定的 Windows Vista PC 上,当 Explorer 验证发布者时,所有使用特定证书签名的程序都无法从 Explorer 启动。只有一两秒钟的时间,沙漏才会出现,然后什么也没有发生(没有错误消息)。

  • 检查有问题的 PC 上的程序属性时,证书显示正确且有效。
  • 签名程序在其他几台电脑(vista、w7、w8)上启动正常,正确验证了发布者。
  • 在有问题的电脑上,程序可以正常启动如果未签名
  • 如果已签名,该程序将在有问题的电脑上正常启动当 Windows 未验证发布者时(例如从本地磁盘启动时)。但是当签名并从映射驱动器启动时,它无法启动。
  • 其他签名的程序可以在特定 PC 上正常启动,只有使用此特定证书签名的程序才会出现问题。

进程监视器显示 explorer.exe 正在检查注册表中是否存在不允许的证书。但检查后,我发现不受信任(撤销)列表中没有证书链的任何部分。所以这似乎不是原因。

可能存在什么问题,或者如何诊断此类问题?

答案1

我遇到的问题是特定证书的签名算法是 sha256rsa。KB2763674,据记录,如果证书哈希值为 256 位或更大,则签名程序可能无法在 Windows Vista SP2 或 Windows Server 2008 SP2 上启动。安装 KB 补丁并重新启动后,问题得以解决。

答案2

可以通过以下方式阻止带有证书规则的软件限制策略

  1. 打开Local Security Settings

  2. 在控制台树中,单击Security Options

    • Security Settings/Local Policies/Security Options
  3. 在详细信息窗格中,双击系统设置:Use Certificate Rules on Windows Executables for Software Restriction Policies.

  4. 执行以下操作之一,然后单击“确定”:

    • 要启用证书规则,请单击Enabled

    • 要禁用证书规则,请单击Disabled

您还可以尝试在 .NET Framework 2.0 托管应用程序中禁用签名验证

相关内容