代码签名证书的问题

问题描述 投票:1回答:2

我的老板最近从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命令FAILED:0x80092002(-2146885630 CRYPT_E_BAD_ENCODE)

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

对于.p12和.pfx。

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

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

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

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

DER(无链)

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

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

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

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

windows visual-studio firefox x509certificate code-signing
2个回答
1
投票

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

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

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

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


1
投票

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

解决问题:

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

诀窍是:

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

© www.soinside.com 2019 - 2024. All rights reserved.