代码签名证书问题

时间:2018-03-20 20:39:12

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

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

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

  

您输入的密码不正确。

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

  

密钥文件'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)

我在尝试进行代码签名时做了很多,但没有用。我能够将其中一些导入到本地用户的Personal and Trusted Publisher商店,但我无法获得任何

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

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

2 个答案:

答案 0 :(得分:1)

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

我设法重新导出文件并使用带有-importPFX的certUtil.exe。

最初我使用digicert实用程序在一台计算机上安装证书并将其添加到商店。 然后我将它从谷歌浏览器浏览器导出到新的.pfx文件。 (设置>管理证书>导出) 瞧,该文件不再被破坏,可以与certUtil.exe一起使用

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

答案 1 :(得分:1)

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

要解决此问题:

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

诀窍是:

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