所以问题在于:我们已经决定购买代码签名证书,我们从Godaddy购买了一个p12格式的证书。
经过研究,我发现p12和pfx是不同的扩展名,所以我将其重命名为pfx。我也有spc和p7c文件,但我不知道如何处理它们。
无论如何,我尝试将我的证书添加到我的Visual Studio 2013解决方案中,这就是我得到的:
首先我收到密码提示,输入密码后我就是 收到错误
"An attempt was made to reference a token that does not exist."
在我第二次尝试安装pfx时,我没有收到任何提示或错误消息,但是当我构建时,我收到了错误
"Cannot import the following key file: something.pfx
The key file may be password protected.
To correct this, try to import the certificate again or
manually install the certificate to the Strong Name CSP with the following
key container name: VS_KEY_33FA18307607ECFB"
所以我正在使用
sn -i something.pfx VS_KEY_33FA18307607ECFB
完成时没有错误,但是当我尝试时 再次构建我使用相同的容器名称得到完全相同的错误。
"Cannot import the following key file: something.pfx ....
我试图使用Goddady支持推荐的signtool作为替代方案但是虽然它标记了组件,但它并没有提供我需要的强大功能。
我还尝试使用
将证书从pfx提取到snk sn -p something.pfx key.snk
并选择延迟签名,但项目没有再次构建,错误更多。
修辞问题:为什么这么难?很多人都有这方面的问题。
有人可以帮忙吗?
答案 0 :(得分:22)
我刚遇到同样的问题,this article保存了我的培根!
我需要做的就是重新创建我的代码签名证书,KeySpec设置为2(AT_SIGNATURE),现在VS(2013)导入并签署我的程序集而不会出错! :-D
我意识到这与你的情景有点不同,但我希望这可以在某种程度上有所帮助......
答案 1 :(得分:20)
我拥有一份Comodo(.p12)证书并遇到了同样的问题并根据@SmithPlatts的答案和@Ares评论解决了这个问题。以下是那些不懂(如我)证书的人的详细演练:
certutil -importPFX "<certFilepath>\<certFilename>.p12" AT_SIGNATURE
(AT_SIGNATURE是使这项工作的原因,而不是[右键单击.p12文件] - &gt;'安装PFX')答案 2 :(得分:9)
我遇到了这个问题并通过以管理员身份打开Visual Studio来修复它。
答案 3 :(得分:3)
我解决了这个问题,使用带有-keysig选项的openssl重新创建PFX。
openssl pkcs12 -export -out "MyPfx.pfx" -keysig -inkey "MyKey.key" -in "MyCer.cer"
答案 4 :(得分:1)
遇到了这个问题以及人们提到的相关问题。
在较大的IT部门的开发部门的公司环境中工作,我没有完整的本地管理员权限。因此,当我运行VS时,它不会以本地管理员身份运行。
一旦我设置了运行VS 2013/2015的快捷方式,我在唱大会时看到的问题就消失了。
这也可以节省一些时间,也可以从根部拔出头发。