【问题标题】:Run a jnlp file after migrating to Java 8迁移到 Java 8 后运行 jnlp 文件
【发布时间】:2018-08-07 23:52:11
【问题描述】:

我正在处理一个项目,客户端现在正在从 Java 6 迁移到 Java 8。我们在项目中下载了一个 jnlp 文件来运行一个 java 应用程序。在 Java 6 中,我们没有任何问题,但现在在迁移到 Java 8 后,我们面临着安全问题,因为我们不能再使用自签名 jar。客户已向我们提供了证书。 我的问题是如何在 Java 8 中运行该 jnlp 文件? 我尝试对我们在 jnlp 文件中使用的 jar 进行签名。我使用了 Java 提供的 cacerts 密钥库。我运行以下命令将证书添加到 Java 密钥库:

keytool -import -keystore cacerts -alias myalias -file "mycertificate"

jarsigner -keystore cacerts myjar myalias

现在,我在执行此操作时收到以下错误 jarsigner:找不到证书链:myalias

我应该怎么做才能让 jnlp 在机器上运行,因为我什至无法对我们使用的 jar 进行签名? jnlp模板是这样的:

<information>
    <title>${appTitle}</title>
    <vendor>Vendor</vendor>
    <homepage href="${codeBase}" />
    <description>Java App</description>
</information>

<security>
    <all-permissions/>
</security>

<resources>
    <j2se version="1.6+" />
    <jar href="${jarPath}" />
    <#if jarDependenciesPath??>
    <#list jarDependenciesPath as jarDependencyPath>
    <jar href="${jarDependencyPath}" />
    </#list>
    </#if>
 </resources>
 <application-desc
     name="${appTitle}"
     main-class="${mainClass}"
     width="300"
     height="300">
     <#list args as arg>
        <argument>${arg}</argument>
     </#list>
 </application-desc>

【问题讨论】:

    标签: java java-8 jnlp digital-certificate jar-signing


    【解决方案1】:

    看来你的证书不好。使用好的证书。

    或者,您可以在 JAVA 控制台中添加异常以绕过安全性。

    【讨论】:

    • 谢谢!它与您的替代解决方案完美配合。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2020-01-02
    • 2020-03-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多