Java Web Start 和安全

标签 java swing java-web-start

刚刚有人向我指出我博客中的 Java Web Start 应用程序,例如我的 Key Bindings条目,由于以下安全错误而不再起作用:

enter image description here

经过一些调查,我确定 JDK7 中的安全性得到了改进,Java 控制面板安全选项卡 中的默认设置位于 Windows 控制面板 设置为 High,这会阻止应用程序运行。如果您确实将此设置更改为 Medium,那么您可以选择接受该应用程序并且它会运行。我猜大多数人都不想这样做,所以看起来我需要签署我的 jar 文件

问题是我真的不明白整个签名过程。

目前,我首先使用如下命令创建一个 .jar 文件:

jar cfev KeyBindings.jar KeyBindings KeyBindings*.class

然后我按如下方式创建 .jnlp 文件:

<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for KeyBindings -->

<jnlp spec="1.0+"
    codebase="http://www.camick.com/java/webstart/"
    href="KeyBindings.jnlp">
    <information>
        <title>KeyBindings Application</title>
        <vendor>Tips4Java</vendor>
        <homepage href="http://tips4java.wordpress.com/"/>
        <description>KeyBindings Application</description>
        <description kind="short">Display the Key Bindings of Swing components</description>
        <offline-allowed/>
    </information>
    <resources>
        <j2se version="1.6+"/>
        <jar href="KeyBindings.jar"/>
    </resources>
    <application-desc main-class="KeyBindings"/>
</jnlp>

.jar 和 .jnlp 文件上传到服务器,Web Start 应用程序使用以下 HTML 启动:

<a href="http://www.camick.com/java/webstart/KeyBindings.jnlp">...</a> - Using Java Web Start (JRE 6 required)

谁能告诉我创建受信任的应用程序(或签名的应用程序,无论适当的术语是什么)我需要遵循的额外步骤。

我目前没有为我的 Java Web Start 应用程序使用任何 IDE。我确实安装了 Eclipse,但从未使用过它。尝试使用 Eclipse 生成签名的 .jar 文件会更好吗?

更新:

这个过程比我想象的更复杂、更昂贵。我不想向证书颁发机构支付费用来签署我的 .jar 文件。此外,我目前使用的是一个不支持 SSL 的免费网络托管站点,因此无论如何我都无法使用已签名的 .jar 文件,因为我不想找到新的托管站点。

由于我写博客只是为了好玩,我不想承担使用签名 .jars 的额外费用,所以我想我将不得不找到一种不同的方式来演示代码。

感谢帮助。

最佳答案

您的小程序必须由知名的证书颁发机构 (CA) 签名。

您可以使用其中任何一个(Digicert、Thawte、Verisign 等...)

CA 将提供有关如何对 jar 文件进行签名的说明。

这是来自 Digicert 的文档:

Java Code Signing Certificate Guide - Digitally Sign Code for Java Applets with Integrated Identity Assurance

关于Java Web Start 和安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24148861/

相关文章:

java - 如何在java中设置JTextField边框大小

java - 我正在尝试通过...(Java)确定结果左右两侧的位数

java - 使用按钮在运行时更改 JPanel

java - 从 java web start 启动另一个 java 应用程序失败

java - 如何获取在 webstart 上运行的 Java 应用程序的类路径?

java - 直接从 src 打开 docx 文件生成 "File not found"异常

java - 如何使用JFrame内部序列化Object并通过网络传输

java - 如何将剪切和查找添加到菜单?

java - 创建 Java Applet 异常 : missing <jnlp> field

java - Jframe 中 JPanel 的随机放置