【问题标题】:Issues with Code Signing Certificate代码签名证书问题
【发布时间】:2018-03-20 20:39:12
【问题描述】:

我的老板最近从 Comodo 购买了一个代码签名证书。我现在的任务是使用强名称密钥签名使其在 VS2013 中工作,也可能作为构建后事件。他在同一台机器(Windows 8.1 64 位笔记本电脑)和同一浏览器(Firefox 59.0.1 64 位)上完成了整个购买过程。我在 Firefox 中转到菜单 > 选项 > 隐私和安全 > 查看证书 > 您的证书屏幕,并选择了刚刚购买的证书。然后我单击“备份”按钮,将其命名为通用名称,例如 companyCert.p12(除了 .p12,我没有任何其他选择或设置),单击“保存”按钮,并输入一个 16 个字符的字母数字(大写和小写)密码,然后单击“确定”按钮。我收到弹窗说导出成功。

当我尝试通过 mmc 将该 .p12 或扩展名重命名的 .pfx 文件导入本地用户的个人或受信任的发布者证书存储区时(甚至尝试 certmgr.msc 只是为了好玩),我得到:

您输入的密码不正确。

当我尝试使用 .p12 文件在 VS 中构建我的程序集以对其进行强名称密钥签名时,我得到:

密钥文件“absolute\path\to\cert\companyCert.p12”不包含公钥/私钥对。

当我尝试做同样的事情但将扩展名重命名为 .pfx 时,系统提示我输入密码,所以我输入了密码,然后我得到:

编码或解码操作期间发生错误。

然后我尝试使用命令提示符(以管理员身份运行)和 CertUtil 使用以下行导入 .p12/.pfx:

certutil -importPFX -user "absolute\path\to\cert\companyCert.p12" AT_SIGNATURE

我被提示输入密码,我输入并得到:

CertUtil:-importPFX 命令失败:0x80092002 (-2146885630 CRYPT_E_BAD_ENCODE)

CertUtil:在编码或解码操作期间发生错误。

对于 .p12 和 .pfx。

我已经多次尝试了所有这些,以防万一我在密码或其他方面做错了什么。我尝试返回 Firefox 证书,而不是点击“备份”

您的证书屏幕中的按钮,单击代码签名证书,然后单击“查看...”,这会将我带到证书查看器窗口,在该窗口中单击详细信息选项卡并单击

“导出”按钮。在那里,我可以选择 X.509 证书:

PEM(.crt/.pem,有链或无链)

DER(没有链的.der)

和 PKCS#7(.p7c 带或不带链)

在尝试进行代码签名时,除了 .der 之外,我什么都做了,但无济于事。我能够将其中一些导入本地用户的个人和受信任的出版商商店,但我无法获得任何

他们在 VS 中工作以进行强名称密钥签名。

据我了解,我需要能够在操作系统级别的本地存储中获取私钥/公钥证书,而不仅仅是 Firefox 的浏览器级别,然后我应该能够导出我需要的方式。那是对的吗?如果不是,请有人告诉我我能做些什么来让它工作。

【问题讨论】:

  • certutil -dump path\pfxfile.pfx 命令返回什么?
  • @Crypt32 我得到了:An error occurred during encode or decode operation. 0x80092002 (-2146885630 CRYPT_E_BAD_ENCODE) CertUtil: -dump command FAILED: 0x80092002 (-2146885630 CRYPT_E_BAD_ENCODE) CertUtil: An error occurred during encode or decode operation. 所以基本上和以前一样。
  • 这意味着您导出的证书内容格式错误。
  • 啊。谢谢。我只是看看我是否可以通过另一个浏览器替换它,因为他们的支持团队将错误归咎于 Firefox。

标签: windows visual-studio firefox x509certificate code-signing


【解决方案1】:

在我的情况下,我可以在运行 Windows 10 的桌面中成功导入 .pfx 文件,但是当我尝试在运行 Windows Server 2016 的服务器中导入证书时,我收到错误 “您输入的密码不正确"

解决问题:

  1. 从我的窗口中删除证书(使用管理控制台/证书)
  2. 将原始 .pfx 证书导入我的台式计算机
  3. 导出证书(使用管理控制台/证书)

诀窍是:

导出证书时,选择加密“TripleDES-SHA1”。

【讨论】:

  • signtool.exe 出现类似的错误消息“指定的 pfx 密码不正确” - 修复方法相同,在 Windows Server 2016 版本(1607 LTS 通道)上注意到。谢谢。
  • 太棒了!这绝对解决了这个问题。谢谢
【解决方案2】:

我下载了 - DigiCertUtil - 并使用此工具手动安装了证书,效果很好! https://www.digicert.com/util/

我设法重新导出文件并将 certUtil.exe 与 -importPFX 一起使用。

最初我使用 digicert 实用程序在一台机器上安装证书并将其添加到存储中。 然后我将它从 google chrome 浏览器导出到一个新的 .pfx 文件。 (设置 > 管理证书 > 导出) 瞧,文件不再损坏,可以与 certUtil.exe 一起使用

我看到 Comodo 支持团队将问题归咎于 Firefox 的帖子,这让我想知道使用 DigiCertUtil 后 chrome 是否可以导出。

【讨论】:

  • 同样的事情发生在我身上,当我从 Firefox 导出签名证书时,密码在导出后没有打开它。 DigiCertUtil 可以使用密码打开它,当您使用此实用程序重新导出时,密码可以正常工作。很奇怪。
猜你喜欢
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2014-01-25
  • 2014-03-24
相关资源
最近更新 更多