使用EV证书与ClickOnce

6
我的公司购买了一张来自Symantec的EV证书,用于我们生产的一个软件产品。具体来说,它叫做:Symantec Class 3 Extended Validation Code Signing CA - G2。
为了开发和构建这个产品,我们使用Visual Studio 2013,并将ClickOnce作为发布和安装程序的机制。我们遇到的问题是,ClickOnce无法使用其内置的签名机制应用EV证书。ClickOnce可以很好地看到证书,并允许我们使用“从存储中选择...”按钮选择证书。它在证书窗口中显示所有正确的信息。但是在发布时却遇到以下错误:
“签名时出现错误:无法签名 bin\Release\app.publish\setup.exe。SignTool 错误:发生意外的内部错误。”
请注意,我们可以使用SignTool.exe通过命令行应用EV证书,因此问题并不在于该程序本身。
有没有人对EV证书和ClickOnce的这种组合有经验?是否有其他更适合与ClickOnce配合使用的EV证书?

我假设你已经收到了硬件eToken证书。你是否使用SafeNet驱动程序来使用它? - Max
是的,我们有一个硬件eToken,并使用SafeNet驱动程序。 我们知道这些正在工作,因为我们可以使用SignTool.exe和Mage.exe绑定EV证书而没有任何问题。 - Drew Stoddard
SafeNet在使用signtool和mage时没有问题,除了ClickOnce证书签名外,但更改注册表值似乎解决了这个问题。 - Max
2个回答

16

我几天前也遇到了同样的问题,Digicert售后服务已经解决了这个问题。尝试检查此注册表键的值(在regedit中):

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Cryptography/Providers/SafeNet Smart Card Key Storage Provider/Aliases

该值应为“eToken Base Cryptographic Provider”,而不是“eToken Base Cryctographic Provider”(使用'p'代替'c')。

如评论所述,更改后你需要重新启动计算机。

希望对你有所帮助。


太好了,谢谢Max。我在我的机器上更正了注册表项,据我所知,它解决了问题。我不是100%确定,因为我的环境发生了很多其他变化,现在无法重新创建原始故障。但是,如果这解决了你的问题,我相信它也会解决我的问题。至少我有足够的信心将其标记为答案。感谢您宝贵的意见。 - Drew Stoddard
1
很好的答案。FYI,在进行更改后,我不得不重新启动我的计算机(我想我也可以杀死/重置在后台运行的各种SafeNet Exes)。 - Simon Mourier
这个答案救了我的命! - Zoltan

3

无法评论(声望不够)。 花费很长时间才能到达此页面,因此我想为所有后来者添加以下信息。

signtool 的完整错误消息(供搜索引擎找到此站点的目的)为:

SignTool 错误:发生了意外的内部错误

错误:SignerSign() 失败。" (-1073741275/0xc0000225)

只有在签名 sha256 时才会发生此错误(对我们来说)。sha1 没问题。

@Max 的答案(注册表键中的拼写错误是正确的。这是 SafeNet Authentication Client 版本 8.2 安装程序中的一个错误。我更改了注册表键,重新启动计算机,一切都开始正常工作。

已从 9.0 版本起修复了此问题(适用于 Win8+)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接