1

Visual Basic Express 2008,开发的 vb.net 数据库应用程序。在 Win7 x64 电脑上。

我更改了构建配置。管理器到平台:x86,因此 .exe 在 x86 和 x64 机器上运行。最后一个答案:在 Visual C# 2008 Express Edition 中设置 32 位 x86 构建目标?

购买了 MS Authenticode 证书。来自 Symantec/Verisign,收到证书,安装在浏览器中。导出的证书。从浏览器到 .pfx。在 VS 属性/签名选项卡中,检查签名组件然后导航到 .pfx。

构建后,使用 signtool 对 .exe 进行签名

signtool.exe sign /ac "c:\users\me\desktop\debugv6\winCert.cer" /s MY /t  http://timestamp.verisign.com/scripts/timestamp.dll /n "Our Company Inc." /v c:\users\me\desktop\debugv6\db.exe

The following certificate was selected:
Issued to: Our Company Inc.
Issued by: VeriSign Class 3 Code Signing 2010 CA
Expires:   7/31/2014 6:59:59 PM
SHA1 hash: xxlongStringxx

Done Adding Additional Store

Attempting to sign: c:\users\me\desktop\debugv6\db.exe
Successfully signed and timestamped: c:\users\me\desktop\debugv6\db.exe

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

然后使用signtool验证

signtool.exe verify /pa /v c:\users\me\desktop\debugv6\db.exe

Verifying: c:\users\me\desktop\debugv6\db.exe
SHA1 hash of file: xxlongStringxx
Signing Certificate Chain:
    Issued to: VeriSign Class 3 Public Primary Certification Authority - G5
    Issued by: VeriSign Class 3 Public Primary Certification Authority - G5
    Expires:   7/16/2036 6:59:59 PM
    SHA1 hash: xxlongStringxx

        Issued to: VeriSign Class 3 Code Signing 2010 CA
        Issued by: VeriSign Class 3 Public Primary Certification Authority - G5
        Expires:   2/7/2020 6:59:59 PM
        SHA1 hash: xxlongStringxx

            Issued to: Our Company Inc.
            Issued by: VeriSign Class 3 Code Signing 2010 CA
            Expires:   7/31/2014 6:59:59 PM
            SHA1 hash: xxlongStringxx

The signature is timestamped: 7/31/2013 4:18:46 PM
Timestamp Verified by:
    Issued to: Thawte Timestamping CA
    Issued by: Thawte Timestamping CA
    Expires:   12/31/2020 6:59:59 PM
    SHA1 hash: xxlongStringxx

        Issued to: Symantec Time Stamping Services CA - G2
        Issued by: Thawte Timestamping CA
        Expires:   12/30/2020 6:59:59 PM
        SHA1 hash: xxlongStringxx

            Issued to: Symantec Time Stamping Services Signer - G4
            Issued by: Symantec Time Stamping Services CA - G2
            Expires:   12/29/2020 6:59:59 PM
            SHA1 hash: xxlongStringxx

Successfully verified: c:\users\me\desktop\debugv6\db.exe

Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

问题

从 WinXP 32 位系统启动 .exe 时,我得到 Publisher: Our Company Inc. Great。但是从一些Win7 x64 机器启动时,我得到发布者:未知。

任何人都有这个问题。前?

谢谢!

4

1 回答 1

3

简短回答
VeriSign 有两个† 路径用于他们当前的代码签名证书。一个使用 G5 作为 root。另一个(更兼容)使用 G5 作为中间体。解决方案不仅是添加次要中间体(正如您已经做过的那样),还要添加主要中间体:下载

长答案

检查有问题机器上的证书存储是否找到您的根 (VeriSign G5),例如使用开始 » 执行 » mmc.exe » 菜单文件 » 添加管理单元 » 证书(计算机,本地) » 添加 » 受信任第三方证书。如果不存在,我知道这五个替代解决方案:

备选方案 A(在有问题的机器上)

  1. 下载“VeriSign Class 3 Primary CA - G5”(根)
  2. 在 Windows 中,双击它并
  3. 在其属性的底部,点击“安装证书”</li>

备选方案 B(在有问题的机器上)

  1. 下载最新的“根证书更新”(KB931125)
  2. 要求您通过正版 Windows 验证
    (安装几个新根,包括“VeriSign Class 3 Public PCA – G5”)

备选 C(在有问题的机器上;仅限 Windows XP)

  1. 打开 Windows 更新网站和
  2. 不要选择快递,而是选择自定义
  3. 安装所有可选更新(安装“根证书更新”)

用户可能已关闭自动根证书更新。在 Windows XP 中,这可以通过开始 » 控制面板 » 软件 » Windows 组件 » 更新根证书进行控制。或者(在 Windows XP、Windows Vista 和 Windows 7 中)通过 mmc.exe » 菜单文件 » 添加管理单元 » 组策略对象(本地) » 添加 » 本地计算机策略 » 管理模板(可选:菜单 » 操作 » 添加模板» 添加 » 系统 » 打开 » 关闭 ») 系统 » 互联网 » 互联网 » 关闭自动根证书更新。

备选方案 D

    作为中间证书,使用较旧的“VeriSign Class 3 Code Signing 2010 CA”<br />过期时间:2014 年 1 月 1 日星期三 19:59:59
    SHA1 哈希:14FCF0BB187D563B568EEA5FC888A53D288698D6
    (此中间链接直接链接到“Class 3 Public Primary Certification Authority”,无需G5)

备选方案 E

    见简短的回答。VeriSign 对 SSL/TLS 做同样的事情。因此,有关更多详细信息,请查看此说明……</a>

† 实际上有三个路径:G5 CA 作为根,G5 CA 作为中间,以及旧的 2010 CA。G5 CA 作为根是有问题的路径。

示例(根据备选方案 E 签名)是 Adob​​e Reader(当前为 v11.0.0.5)和 Apple AirPort Utility(当前为 v5.6.1)。顺便说一句,浏览器插件内核代码驱动程序也有类似的指南。

于 2013-10-15T16:34:55.900 回答