Prev / Next

2008-09-19 / Java の ValidatorException

Java で以下のようなエラーが出た.

ERROR RequestThread.java(148) sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCert PathBuilderException: unable to find valid certification path to requested target


これは必要な中間認証局の証明書が
/usr/lib/jvm/java-1.6.*-sun-1.6.*.*.x86_64/jre/lib/security/cacerts 等に
入っていないため.

keytool - v --list -keystore /path/to/cacerts


で cacerts の中身を確認できる.

これに keytool を使って import すればエラーはでなくなるけど,
ユーザが指定する証明書を上記以外の場所に置けないのだろうか?

インポートは以下のように行なう.

keytool -import -alias cachain -file ca-chain.cer  -keystore cacerts -trustcacerts


(追記)
- javassl - 気の向くままに・・・ - livedoor Wiki(ウィキ)
  http://wiki.livedoor.jp/syo1976/d/javassl

- 自作証明書を使用する場合1
  X509TrustManagerを用いて署名エラーを無視する
- 自作証明書を使用する場合2
  証明書をインポートして使用する
- サーバ証明書の情報を取得する
- クライアント証明書を使用して通信する
などの対応方法が紹介されている.

comments powered by Disqus