发布商名称未经验证,因此列为UNKNOWN

时间:2016-05-19 13:03:49

标签: java certificate

我有一个旧的java Web应用程序。客户端计算机正在使用JRE 6访问此应用程序,但我需要将它们迁移到JRE 8。 在客户端(Windows)上安装JRE 8后,当我第一次运行应用程序时,我收到与名为jacob.jar的文件相关的安全警告消息:发布者名称未经验证,因此列为UNKNOWN。 ..

我可以勾选复选框并单击运行,然后警告不会出现在该浏览器会话中,但如何完全摆脱警告消息,以便它不会甚至在会议首次发布时出现?

我尝试过的事情

PermissionsCodebaseApplication-Name属性添加到MANIFEST.MF并制作了我自己的证书:

keytool -genkey -alias webutil2 -keystore example.keystore
<Entering data is omitted>
keytool -export -keystore example.keystore -alias webutil2 -file cert3.csr

使用我自制的证书手动签名jacob.jar

> sign_webutil.bat jacob.jar
Signature verified OK    jarsigner -verify jacob.jar    jar verified.
Warning:    This jar contains entries whose certificate chain is not validated.    This jar contains signatures that does not include a timestamp. Without a timestamp, users may not be able to validate this jar after    the signer certificate's expiration date (2017-05-14) or after any    future revocation date.
Re-run with the -verbose and -certs options for more details.

我还将我的证书添加到Signer CA列表,并确认已通过Control Panel > Java > Security > Manage Certificates > System添加:

C:\Program Files\Java\jre1.8.0_66\lib\security> keytool -import -trustcacerts -alias root -file cert3.csr -keystore cacerts
  • Java控制面板
  • 中添加了到例外列表的URL
  • 兼容性视图设置弹出窗口阻止程序设置中添加了网址(+ IE重启)

但在我从Java控制面板重置警告提示后仍然出现警告。

1 个答案:

答案 0 :(得分:1)

您需要一张官方证书,而不是自签名证书。此外,证书必须是允许软件签名的证书;请记住,那些往往比网站或电子邮件更昂贵。

编辑:this post还建议将自己的自定义CA添加到Java自己的证书路径中也可能是一种可行的选择。