[pgsql-jp: 37606] Re: JAVAアプリケーションからのSSL接続

Masatoshi Sato okome @ siisise.net
2006年 10月 23日 (月) 01:08:12 JST


おこめ@しいしせねっとです。

岩瀬 肇 wrote:
> > 岩瀬です。
> >
> > 手順は以下の通りです。
> >
> > 1.サーバ証明書をJAVAが理解できる形に変換
> >
>> >> openssl x509 -in server.crt -out server.crt.der -outform der
> >
> > 2.Javaのシステムトラストストアに証明書をインポート
> >
>> >> keytool -keystore $JAVA_HOME/lib/security/cacerts -alias
postgresql -import -file server.crt.der

Java Runtime でしょうか?
Java SDK であれば $JAVA_HOME/jre/lib/security/cacerts の場合もあります。
元のファイルの所在を確認されていればいいのですが。

keytool -import -alias svpgsql -file server.crt -keystore
/usr/java/jdk1.5.0_09/jre/lib/security/cacerts


> > 3.PostgreSQL接続時のURLに以下の2つを追加
> >  ○ssl=true
> >  ○sslfactory=org.postgresql.ssl.NonValidatingFactory
> >
> >   最終的なURLは以下のようになりました。
> >   jdbc:postgresql://(サーバ名):(ポート番号)/(データベース名
> >
)?prepareThreshold=0&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

?ssl=true だけでよいのではないでしょうか?

> > 4.JAVAアプリケーション起動時引数に以下を追加
> >  ○-Djavax.net.ssl.trustStore=$JAVA_HOME\lib\security\cacerts
> >  ○-Djavax.net.ssl.trustStorePassword=changeit
> >  ○-Djavax.net.debug=ssl(デバッグ用)

こちらも標準のcacertsを使うのなら必要ないと思います。

> >
> > 上記手順にて実行すると、
> > org.postgresql.util.PSQLException: The connection attempt failed.
> > と
> > Caused by: java.net.SocketException: Software caused connection
abort: recv failed
> > という2つのエラーが出てしまいます。
> >
> >
> > JAVA寄りの話が多くて申し訳ありませんが、何かわかることがあればアドバイス
> > 頂けますようお願い致します。

-- 
佐藤 雅俊 (おこめ)
okome @ siisise.net okome @ mozilla.gr.jp
http://siisise.net/



pgsql-jp メーリングリストの案内