使用受信任的证书签名jar文件以进行JWS部署


问题内容

我已经开发了一个开源程序WPCleaner,该程序通过Java Web
Start分发。当前版本可从http://site4145.mutu.sivit.org/WikiCleaner/WikiCleaner.jnlp获得。

随着Java的最新更新,当您需要该应用程序具有一些权限(编写首选项,访问其他网站等)时,通过Java Web Start部署Java应用程序变得越来越困难。

我的应用程序是自签名的,以前是可以的,但是新的更新要求用户每次运行它时都接受该应用程序,而不是一劳永逸。因此,我决定使用受信任的证书来签名我的应用程序。

在进行以下讨论之后,我从Certum获得了一个(显然,它们对开源开发人员是免费的):开源项目的代码签名证书?

我已经生成了一个新的jar文件,并使用此证书进行了签名(jar文件位于http://site4145.mutu.sivit.org/WikiCleaner/WikipediaCleanerTest.jar),但是仍然存在问题:通过JWS启动应用程序时,Java仍然显示警告窗口,不允许我一劳永逸地信任该应用程序。编辑器仍然显示为UNKNOWN,但是当我查看消息的详细信息时,正在使用的是我来自Centrum的新证书。

有人知道我在做什么错吗?我认为从受信任的CA获得证书(Centrum似乎在Java cacerts中)将允许用户一劳永逸地接受证书。

谢谢

PS:运行时jarsigner -verify,收到以下警告:“此jar包含未验证其证书链的条目。”


问题答案:

我想我终于按照以下程序做到了:

  • 通过其网站界面在Chrome中安装了Certum提供的证书
  • 从Chrome将私钥导出为.pfx(设置,管理证书,导出,导出私钥,PKCS#12等)。
  • 使用KeyTool GUI(keytools的Java前端GUI)来创建完整的p12:导入Certum根证书作为受信任的证书,导入中间证书作为受信任的证书,导入我的.pfx作为密钥对
  • 与此p12签署了罐子

似乎对我有用,我正在等待其他用户的反馈,以确保它也对他们有用。

编辑:我再次尝试从Chrome导出证书,并且看到有一个选项可以在导出中包括证书链。这样做时,以后甚至不需要使用KeyTool
GUI。我已经重新部署了与此新p12签署的测试版本:

  • 通过其网站界面在Chrome中安装了Certum提供的证书
  • 从Chrome将私钥导出为.pfx(设置,管理证书,导出,导出私钥,PKCS#12 +包括证书链,…)
  • 与此p12签署了罐子