首页 文章

JNLP w / jdk1.7.0_51;应用被安全设置阻挡了

提问于
浏览
0

我正在尝试将现有的JNLP应用程序从Java 1.6.0_45升级到Java 1.7.0_51 . 我遇到了很多障碍,所有这些障碍都与新增强的Oracle安全性有关 .

我的理解是,为了通过我们的本地开发人员开发的本地网络运行应用程序,我们需要由受信任的CA签署的应用程序JAR .

这是我到目前为止所做的:

  • 使用openssl创建了受信任的CA.

  • 创建了证书并使用Root CA的密钥对证书进行了签名

  • 将根证书和签名证书导入密钥库,并使用密钥库和jarsigner签署所有客户端JAR,包括应用程序JAR和JNLP-INF / APPLICATION.JNLP中的JNLP文件

  • 将根CA的证书和签名证书加载到%JAVA_HOME \ jre \ lib \ security \ cacerts

  • 使用jarsigner验证所有应用程序JAR都已正确签名并且没有错误(例如,它知道可信任的证书链或其所谓的)

  • 用"Permissions: all-permissions"标记应用程序JAR和JNLP文件

  • 将Java控制面板中的安全设置降低到"medium"

  • 清除Java控制面板中的临时Internet文件

  • 为"Exception Site List"添加了一个例外

现在我明白了:

a generic Application Blocked by Security Settings dialog
.

我尝试使用 javaws -verbose 和JNLP文件执行应用程序,但它根本不显示任何内容 . 我在Java控制面板中将日志记录调到最大值 .

此时,我跑了 . 正如我之前所说,我们关心认证JAR的来源 . 我们 do 需要应用程序在沙箱外运行 .

如果有任何方法可以让网络开始吐出任何可能有用的东西,我会全力以赴 .

2 回答

  • 0

    检查您的codebase参数 .

    jnlp文件的codebase参数必须与jnlp文件引用的jars资源的manifest.mf文件的de codebase参数相同 .

    例:

    file.jnlp

    <jnlp codebase="https://myserver/mydirectory"
    ...
    <resources>
    ...
            <jar href="https://myserver/mydirectory/myJar.jar" main="true"/>
    ...
    

    myJar.jar的manifest.mf

    Codebase: https://myserver/mydirectory
    
  • 2

    考虑这个FAQ:

    http://www.java.com/en/download/faq/signed_code.xml

    TL; DR?他们改变了在某些环境中运行Java的安全模型 .

    在我的组织中,我们必须在IE安全设置中进行调整 .

相关问题