プライベートCAの証明書を信頼してみる

http://www.h7.dion.ne.jp/~matsu/feature/uzumi/httpclient/ssl.html を参考にして、$JAVA_HOME/bin/keytool を使ってみました。

keytool -import -trsutcacerts -file ca.crt -alias ca
java -Djavax.net.ssl.trustStore=${HOME}/.keystore ...

上のコマンドは、それぞれ次のことを意味します。

  1. ${HOME}/.keystoreにCA証明書の信頼リストに追加する。
  2. ${HOME}/.keystoreを信頼リストにして実行する。

たとえば、WSDL2Javaでスタブを作ってみたりします。

% java -Djavax.net.ssl.trsutStore=${HOME}/.keystore org.apache.axis.wsdl.WSDL2Java "https://example.jp/axis/services/Version?wsdl"
% cat Test.java
import jp.example.axis.services.Version.*;

public class Test {
    static public void main( String[] args ) {
        try {
            Version V = (new VersionServiceLocator() ).getVersion();
            System.out.println( V.getVersion() );
        }
        catch( Exception e ) {
            e.printStackTrace();
        }
    }
}

% javac Test.java
% java -Djavax.net.ssl.trustStore=${HOME}/.keystore Test

("example.jp"の箇所は変わります)