使用受信任的证书签名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签署了罐子