こんにちは。サイオステクノロジー武井です。今回は、JavaによるSSL接続検証を簡単にする方法をご紹介します。
JavaによるSSL接続
JavaはSSL接続する際、以下のどちらかのルールにマッチしていない場合、接続エラーとします。。
- 接続先のサーバー証明書が、Javaの証明書キーストアに入っている
- 接続先のサーバー証明書のルート証明書が、Javaの証明書キーストアに入っている
意外に上記のルールにマッチしていないためSSL接続出来ないって結構あります。
簡単にSSL接続を検証
以下のGitHubにあるSSLPokeと言うものを使うと、簡単に検証できます。
https://gist.github.com/4ndrej/4547029
上記のソースをコンパイルします。
# javac SSLPoke.java
これでOKです。試しにどこかに接続してみましょう。
# java SSLPoke www.google.com 443 Successfully connected
(`・ω・´)シャキーン
ちなみにエラーの場合は以下のようになります。
# java SSLPoke www.exapmle.com 443 sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ...
(´・ω・`)