我的老板最近从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的浏览器级别,然后我应该能够导出我需要的内容。那是对的吗?如果不是,请有人告诉我我能做些什么才能让它发挥作用。
答案 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的服务器中导入证书时,收到错误消息”您输入的密码不正确“ 。
要解决此问题:
诀窍是:
导出证书时,选择加密“ TripleDES-SHA1”。