NASA WorldWind アプレットを ssl で動作させる作業を行っていますが、かなり難しいエラー メッセージが表示されます。
純粋な webstart アプレットを実行しようとすると、「sun.security.validator.ValidatorException: PKIX パスの検証に失敗しました: java.security.cert.CertPathValidatorException: パスがどのトラスト アンカーとも連鎖していません」というメッセージがスローされます。これは、アプレットの CA が見つからないことを意味します。署名証明書とその ca (Localhost.crt および localhost-ca.crt) の両方が同じキーストアにあり、信頼ストアとしてマークしているため、これはあまり意味がありません。
考えられることはすべて試したので、この問題に関するアドバイスとヘルプをいただければ幸いです。
私が試したこと:
- JVM の基本となる cacerts ファイルに localhost-ca crt を追加する
- localhost crt と localhost CA の両方を含むトラストストアを jlnp ファイルに追加しました
- 必要なすべての .jar ファイルが同じ crt によって署名されていることを確認する
- はい、jogl.jar とそのすべてのネイティブを PC にダウンロードし、古い META-INF を削除して辞任しました。
- Jnlpファイルを通常のhttp経由でロードして、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>