SWANStorゲートウエイを運用されているお客様で、そのSSLサーバ証明書を自己CA局をたてた自己署名で運用された場合、EXトネリングが正常に動作しない場合があります。
現象としては2通りあります。
1)Javaアプレットが起動しない場合
Javaコンソールを起動し、5を入力して「トレースレベル」を変更した上で、Javaアプレットが起動しない画面をクリックしてリロードします。
この時次のようなExceptionエラー(いずれか1つ)が表示されます。
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: KeyUsage does not allow key encipherment
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Netscape cert type does not permit use for SSL server
この場合、自己CA局による署名に問題があります。自己CA局のopenssl.cnfファイルの[ usr_cert ]の以下の項目を見直してください。
basicConstraints=CA:FALSE にします。
nsCertType= server, client にします。これが他の指定の場合、上記Exceptionの2番目の要因でJavaアプレットが起動しません
keyUsageはコメントアウトして、何も指定しません。keyUsage= cRLSignなどが指定されている場合、1番目のExceptionが発生し、Javaアプレットが起動しません
2)Javaアプレットは起動するが、トネリングでの通信ができない場合
この場合には以下のようなExceptionが発生します。
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
これはEX JavaプログラムがSWANStorゲートウエイとSSL通信をしようとして証明書を検証した結果に失敗したことを意味します。自己署名証明書を使う場合、EXトネリングのJavaのサーバ証明書の検証機能を無効化します。
無効化はSWANStorサーバのuserinfoおよびuserinfo/htdocsのea-windows.htmlの中身を編集することで行います。
このファイルをテキストエディタなどで開いて、真ん中やや後ろよりの方に以下のような記載のある部分があります。
<param name=”dnsOn” value=”true”>
<param name=”debug” value=”false”>
<param name=”configuration” value=”$CONFIG$”>
ここに、以下のように1行追加します。
<param name=”dnsOn” value=”true”>
<param name=”debug” value=”false”>
<param name=”useSelfSignedSSL” value=”true”>
<param name=”configuration” value=”$CONFIG$”>
この設定によりEXトネリングのJavaアプレットはサーバ証明書の検証を行わなくなるためman-in-the-middle攻撃に対して脆弱になります。
Javaの起動の前にはブラウザにより同じサイトにアクセスするため、リスクは多少低くなりますが、SWANStorゲートウエイの運用では、それが特にインターネットでアクセスできる環境の場合、正規のSSLサーバ証明書の取得をお勧めします。