java - 迁移到 Java 8 后运行 jnlp 文件

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

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

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 控制台中添加异常(exception)来绕过安全性。

关于java - 迁移到 Java 8 后运行 jnlp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49023828/

相关文章:

java - JaNeLA 的 JNLP 错误

java - 启动 Web 启动应用程序时出现 NullPointerException

java - 什么是NullPointerException,我该如何解决?

java - 使用 Univocity 将注释 bean 转为部分记录

java - 确定 Java 8 DateTimeFormatter 是否包含足够的时区信息

java - 与 lambda 和功能接口(interface)一起使用时理解下限的问题

java - 如何在 Java 中连接两个 float 数组?

java - 在 servlet 的 init 参数中进行 JNDI 查找是个好主意吗?

java - 检查排序性的标准函数

java - 如何从 .jnlp 文件中获取 .jar 文件?