我一直在努力让 NASA WorldWind 小程序在 ssl 上运行,并且遇到了一个相当困难的错误消息。
当我尝试运行纯 webstart 小程序时,它会抛出“sun.security.validator.ValidatorException:PKIX 路径验证失败:java.security.cert.CertPathValidatorException:路径不与任何信任锚链接”据我所知,这意味着它无法为小程序找到 CA。这没有多大意义,因为签名证书及其 ca(Localhost.crt 和 localhost-ca.crt)都在同一个密钥库中,我已将其标记为信任库。
对于这个问题的建议和帮助将不胜感激,因为我已经尝试了我能想到的一切。
我尝试过的事情:
- 将 localhost-ca crt 添加到 JVM 基础的 cacerts 文件中
- 将信任库添加到包含 localhost crt 和 localhost CA 的 jlnp 文件
- 确保所有需要的 .jar 文件都由同一个 crt 签名
- 是的,我什至将 jogl.jar 及其所有本地文件下载到了我的 PC 上,并让他们删除了旧的 META-INF
- 通过常规 http 加载 Jnlp 文件以确保它不是只需单击 webstart (同样的错误)
附件是我的 WWApplet 代码。
<?xml version="1.0" encoding="UTF-8"?>
<jnlp href="WWJApplet.jnlp" codebase =".">
<information>
<title>World Wind Java Applet Demo</title>
<vendor>NASA</vendor>
<homepage href="http://worldwind.arc.nasa.gov"/>
<description>World Wind Java Applet Demo</description>
<description kind="short">World Wind Java Applet Demo</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources os="Windows">
<property name="sun.java2d.noddraw" value="true"/>
</resources>
<resources>
<j2se href="http://java.sun.com/products/autodl/j2se" version="1.6+" initial-heap-size="512m"
max-heap-size="512m"/>
<property name="sun.java2d.noddraw" value="true"/>
<property name="Djavax.net.ssl.trustStore"
value="C:\Users\srivera\Documents\Apache-Install\tomcat-owf\certs\keystore.jks"/>
<property name="Djavax.net.ssl.trustStorePassword" value="password"/>
<jar href="WorldWindWidget.jar" main="true"/>
<jar href="Windworld.jar"/>
<extension name="jogl" href="jogl.jnlp"/>
</resources>
<!-- Width and heigth are overwritten by the surrounding web page -->
<applet-desc
name="WWJ Applet"
main-class="org.me.windworldwidget.WorldWindWidget"
width="800" height="600">
<param name="separate_jvm" value="true" />
</applet-desc>
</jnlp>