java 如何在运行JNLP文件时绕过安全对话框

xeufq47z  于 2022-11-20  发布在  Java
关注(0)|答案(3)|浏览(118)

我已经创建了一个Java Web Start应用程序。我已经用自签名证书对我的Jar进行了签名。同时,提供Jar和JNLP文件的Web服务器也可以用其证书进行信任。
当JNLP文件运行时,它会打开下面的对话框。我想知道是否有任何方法可以不显示此对话框,并在运行时直接打开应用程序窗口。

当我在谷歌上搜索时,我找不到任何提到这个问题的来源。
希望你能帮忙。非常感谢。

nhaq1z21

nhaq1z211#

我想知道是否有办法不显示此对话框。
不。如果你找到了一个方法,这是一个安全漏洞。所以请让我们知道-我们可以修复它。
..并在应用程序运行时直接打开应用程序窗口。
这是不可能的,甚至与一个完全认证的代码签名证书!

更新

web-start插件从Java API中被弃用,并从Java 9中删除。它被删除的很大一部分原因是(当时是Sun Microsystems)Oracle不断重新引入在早期版本中已修复的 * 安全错误 *。
考虑到最初的问题,有点讽刺。“太多”的安全性"永远不足以“提供一个以安全方式交付软件的插件。

vlju58qv

vlju58qv2#

我也找不到这个问题的书面答案,但确实找到了javaws-verbose的输出,它将我引导到Windows系统上的“Internet Explorer证书存储”。
从.jar文件中获取代码设计证书,并将其放入Windows的Trusted Publishers存储区,我就解决了这个问题。显然,Windows必须能够验证该证书。不过,这似乎确实适用于内部PKI。
仅在Windows上进行了测试,因为上面的内容对我来说已经足够了(而不是配置所有需要的规则集),因为它使部署变得容易得多。
不知道这是否是一个bug,正如@Andrew Thompson的回复,尽管在我的书中,如果.jnlp更新了,但引用的(和签名的).jar没有更新,那么让用户确认每一次执行都是非常不安全的。
但这超出了这个问题的范围。

1cosmwyk

1cosmwyk3#

我不敢苟同上面@Andrew Thompson的回答,但是oracle的文档已经指定了如何避免这些消息。
在位于${user.home}/.java.policy的Java策略文件中授予“所有权限”,或指向在$(JRE_HOME)/lib/security/ www.example.com文件中具有“所有权限”的任何Java策略文件java.security。可以将权限授予所有应用程序,也可以将权限限制为特定URL。有关. java. policy的详细信息,请参阅默认策略实现和策略文件语法。

相关问题