我有一个需要访问客户端本地文件系统的 Java Applet。我为自己创建了一个简单的证书(它未经 Verisign、Commodo、... 认证)。我使用以下模板对 jar 进行了签名:
del \Users\koalabruder\.keystore
"C:\Program Files\Java\jdk1.7.0_45\bin\keytool" -genkey -alias %1 -keypass kp -dname "cn=inin" -storepass ab987c
"C:\Program Files\Java\jdk1.7.0_45\bin\jarsigner.exe" -storepass abc -keypass kp %2 %1
"C:\Program Files\Java\jdk1.7.0_45\bin\keytool" -export -storepass abc -alias %1 -file %3
我有“没有签名证书”的简单安全警告已经存在多年,这不是我的问题。
我的问题是,安全警告发生了变化,因为最后一次 Java 更新之一:
此应用程序将在未来的 Java 安全更新中被阻止,因为 JAR 文件清单不包含 Permissions 属性。请联系发布者以获取更多信息。
这是什么意思?我该如何解决?我必须购买证书吗?我必须修复清单(MANIFEST.MF)吗?什么是权限属性?
更新:这是我的 jar 文件中的清单
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Application-Name: inin
Permissions: all-permissions
Created-By: 1.7.0_45-b18 (Oracle Corporation)
Name: net/inin/transfer/ul/UlPanel.class
SHA-256-Digest: asdfasddddddddddddddddddddddddddddddddd=