Java 发布者名称未经验证,因此列为未知
我有一个旧的java web应用程序。客户端计算机正在使用JRE 6访问此应用程序,但我需要将它们迁移到JRE 8。 在客户端(windows)上安装JRE 8后,当我第一次运行应用程序时,我收到与名为Java 发布者名称未经验证,因此列为未知,java,certificate,Java,Certificate,我有一个旧的java web应用程序。客户端计算机正在使用JRE 6访问此应用程序,但我需要将它们迁移到JRE 8。 在客户端(windows)上安装JRE 8后,当我第一次运行应用程序时,我收到与名为jacob.jar的文件相关的安全警告消息:发布者名称未经验证,因此列为未知 我可以勾选复选框并单击运行,然后警告不会出现在该浏览器会话中,但是如何完全消除警告消息,使其即使在会话中首次启动时也不会出现? 我试过的东西 将权限、代码库和应用程序名称属性添加到MANIFEST.MF,并制作了我自己的
jacob.jar
的文件相关的安全警告消息:发布者名称未经验证,因此列为未知
我可以勾选复选框并单击运行,然后警告不会出现在该浏览器会话中,但是如何完全消除警告消息,使其即使在会话中首次启动时也不会出现?
我试过的东西
将权限
、代码库
和应用程序名称
属性添加到MANIFEST.MF
,并制作了我自己的证书:
keytool -genkey -alias webutil2 -keystore example.keystore
<Entering data is omitted>
keytool -export -keystore example.keystore -alias webutil2 -file cert3.csr
> 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.
我还将我的证书添加到签名者CA
列表中,并通过控制面板>Java>安全性>管理证书>系统确认添加了该证书:
C:\Program Files\Java\jre1.8.0_66\lib\security> keytool -import -trustcacerts -alias root -file cert3.csr -keystore cacerts
- 将URL添加到Java控制面板中的异常列表
- 在兼容性视图设置和弹出窗口阻止程序设置中添加URL(+IE重启)
但是,在我从Java控制面板重置警告提示后,警告仍然出现。您将需要正式证书,而不是自签名证书。此外,证书必须是允许软件签名的证书;请记住,这些往往比那些网站或电子邮件更昂贵
编辑:还建议将您自己的自定义CA添加到Java自己的证书路径也可能是一个可行的选择。我通过制作自定义证书解决了这个问题。高级步骤是:使用CRL位置生成自签名CA密钥对;制作代码签名密钥对;制定代码签署证书的CSR;使用CA批准CSR;使用CA证书生成空CRL并将其放入CRL位置;然后文件就准备好了。将CA证书导入客户端计算机(文件javahome/lib/security
中的cacerts
)。之后,可以使用代码签名密钥对对JAR进行签名。客户端计算机不会在每次会话之前发出警告消息。只有一条信息消息,您在其中勾选复选框一次,它将不再显示。