运行未签名的 javaws 代码

运行未签名的 javaws 代码

对于 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运行的所有小程序都可以运行未签名的吗?
  • 鉴于我无法更改代码,是否有更好的选择?

我目前正在使用 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

相关内容