Java webstart说我的应用程序使用自签名证书,但我使用了COMODO代码签名证书

Ret*_*ner 6 java code-signing java-web-start code-signing-certificate

我买了一个COMODO代码签名证书,用它来签署我的java webstart应用程序.

主要问题:Java 8甚至支持COMODO代码签名证书吗?

更多信息:

在除我自己以外的所有机器上,java会阻止应用程序,说它使用自签名证书.

我甚至不明白为什么它在我的机器上运行.我查看了java控制面板(1.8.0_45-b15)中可信认证根的列表,但我找不到那里的"COMODO RSA认证中心".

我确实在"受信任的根证书颁发机构"下的Windows MMC证书管理单元中看到该证书.但至少在其他3台机器上它并不存在.

Ret*_*ner 4

我终于解决了这个问题 - 这是故事:

当我购买证书时,我必须导航到通过电子邮件收到的网站地址来领取证书。在那里,证书被自动安装到我的浏览器(Firefox)的信任库中。

然后我从 Firefox 导出它(选项 - 高级 - 查看证书 - 您的证书 - 备份按钮)。

当时我没有意识到,与 Java 和 Windows 不同,Firefox 具有“COMODO RSA 证书颁发机构”作为内置令牌

当时我还不知道的是,Firefox 证书导出似乎只包括到第一个受信任机构的证书链,在本例中为“COMODO RSA 证书颁发机构”。

从这个COMODO 支持网站上,我了解到该链实际上应该更高,一直到“AddTrust external CA Root”:

这听起来更有希望,因为AddTrust 证书实际上包含在 Oracle 的 java 8 cacerts truststore 中,它负责在 java webstart 期间验证 jar。

我做的下一件事是将我从 Firefox 获得的 *.p12 文件导入 Windows 证书管理器(开始 - certmgr.msc),因为出于某种原因我认为这是将 *.p12 转换为 *.pfx 的方法(尽管现在我知道这两个扩展都用于相同的 pkcs12 密钥库格式)。无论如何,在导入过程中出现了这个问题:

在这里我犯了一个严重的错误:我点击了“是”。这导致“COMODO RSA 证书颁发机构”作为“受信任的根证书”安装在 Windows 信任库中(顺便说一句,仅在我重新启动 certmgr.msc 后才可见):

我的代码签名证书安装在“个人/证书”中。我从那里导出它(操作 - 所有任务 - 导出...),并标记“如果可能,包括证书路径中的所有证书”。

现在发生了与我从 Firefox 导出时完全相同的事情。由于 Windows 现在已将“COMODO RSA 证书颁发机构”安装为受信任的根证书,因此它仅包含到此证书的链。这是我导出后得到的结果:

现在是我偶然发现的天才之举:我从 Windows 证书管理器中删除了“COMODO RSA 证书颁发机构”。现在,当我双击代码签名证书时,显示的链突然看起来不同:

我承认,当我看到这个时,我的肾上腺素激增。我再次导出(与之前的设置完全相同)。

事实上,在我使用此导出的证书签署我的应用程序后,java webstart 接受它: