我有一个旧的java Web应用程序。客户端计算机正在使用JRE 6访问此应用程序,但我需要将它们迁移到JRE 8。
在客户端(Windows)上安装JRE 8后,当我第一次运行应用程序时,我收到与名为jacob.jar
的文件相关的安全警告消息:发布者名称未经验证,因此列为UNKNOWN。 .. 的
我可以勾选复选框并单击运行,然后警告不会出现在该浏览器会话中,但如何完全摆脱警告消息,以便它不会甚至在会议首次发布时出现?
将Permissions
,Codebase
和Application-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控制面板重置警告提示后仍然出现警告。
答案 0 :(得分:1)
您需要一张官方证书,而不是自签名证书。此外,证书必须是允许软件签名的证书;请记住,那些往往比网站或电子邮件更昂贵。
编辑:this post还建议将自己的自定义CA添加到Java自己的证书路径中也可能是一种可行的选择。