发布者名称未经验证,因此列为"未知"



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

我可以勾选复选框并单击运行,然后警告不会出现在浏览器会话中,但如何完全消除警告消息,使其即使在会话中首次启动时也不会出现

我尝试过的东西

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

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 FilesJavajre1.8.0_66libsecurity> keytool -import -trustcacerts -alias root -file cert3.csr -keystore cacerts
  • 在Java控制面板中将URL添加到异常列表
  • 兼容性视图设置弹出窗口阻止程序设置

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

您将需要一个官方证书,而不是自签名证书。此外,证书必须是允许软件签名的证书;请记住,这些往往比为网站或电子邮件制作的要贵得多。

编辑:这篇文章还建议,将您自己的自定义CA添加到Java自己的证书路径中可能也是一个可行的选择。

最新更新