Apache HttpClient4.3でSSLの証明書とホスト名のチェックを回避する
Hostsファイルにローカルアドレスを書いて、httpsでしか口が開いていないサーバにリクエストを投げると、
javax.net.ssl.SSLException: hostname in certificate didn't match
↑みたいな例外を投げられて(´A`)ってなるので、
オレオレ証明書をjavaに登録するか、SSL証明書のチェックを回避して、リクエストするみたいな処理をするかの二通りになる。
前者はググれば結構情報見つかるけど、手順が面倒くさそうなので、後者で…
Apache HttpClient4.2だと下みたいなコードで、SSLの証明書とホスト名のチェックを回避出来たけど、
Apache HttpClient v4.2(org.apache.httpcomponents.httpclient:4.2.5)版
gist01f9c5228913c24d25f1
4.3になってからSSLSocketFactoryとかSchemeRegistryとかSchemeとかが@Deprecatedになったので
以下みたいな書き方をしないとダメっぽい。
Apache HttpClient v4.3(org.apache.httpcomponents.httpclient:4.3.4)版
giste7da2f90fd962cedc780
基本的なことは、4.3のjavadocとかに書いてあるので、それにそって、適宜ポーティングする感じ。
ただ、4.2と比較すると4.3はコード量が多い…