对于 KVM 远程控制台,我需要能够运行文件jnlp
。当我运行它时,我得到:
net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize application.
at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:797)
at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:555)
at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:908)
Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Cannot grant permissions to unsigned jars. Application requested security permissions, but jars are not signed.
at net.sourceforge.jnlp.runtime.JNLPClassLoader.setSecurity(JNLPClassLoader.java:319)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:239)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:381)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:337)
at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:789)
... 2 more
我理解为什么您不希望浏览器运行任意未签名的代码。
但在这种情况下,我没有机会更改或签署代码,因为它来自 KVM 设备。
- 我可以告诉 Java 这个小程序可以在未签名的情况下运行吗?
- 如果不是:我可以告诉 Java 运行来自该域的所有小程序都可以运行未签名的吗?
- 如果不是:我可以告诉Java运行的所有小程序都可以运行未签名的吗?
- 如果不是:我可以告诉 Java 运行来自该域的所有小程序都可以运行未签名的吗?
- 鉴于我无法更改代码,是否有更好的选择?
我目前正在使用 Linux Mint 和 Chrome。
答案1
允许未签名的 JAR
到:
.java/部署/部署.properties
添加:
deployment.security.level=ALLOW_UNSIGNED
笔记:
.java/部署
是一个别名
.config/icedtea-web
允许弱签名 JAR:
如果上述方法不起作用,请尝试注释掉以下行:
禁用算法
例子
jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024
从java.security
/etc/java-*-openjdk/security/java.security
答案2
Ubuntu 14.04 中包含的 icedTea 版本有一个新的控制面板,其中包括配置真正有效的策略的可能性。
现在您可以允许执行无主代码。如果您担心安全性,请仅允许来自应用程序的特定代码库的权限
我尝试在 Ubuntu 12.04.x 中执行相同的操作,但没有成功。在以前的 Ubuntu 版本中,java.policy 文件似乎被忽略。
答案3
2023 年,我通过评论 SHA1 实现了这一目标denyafter
:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \
DSA keySize < 1024, include jdk.disabled.namedCurves
#, SHA1 denyAfter 2019-01-01