Apache-httpclient-custom-ssl-context
Apache HttpClient-カスタムSSLコンテキスト
Secure Socket Layerを使用すると、クライアントとサーバー間に安全な接続を確立できます。 クレジットカード番号、ユーザー名、パスワード、ピンなどの機密情報を保護するのに役立ちます。
以下に示す手順に従って、HttpClientライブラリを使用してSSLContextをカスタマイズします-
ステップ1-SSLContextBuilderオブジェクトを作成する
ステップ2-キーストアをロードする
パス Java_home_directory/jre/lib/security/ で、cacertsという名前のファイルを見つけることができます。 これをキーストアファイル(拡張子.jks)として保存します。 SSLContextBuilder クラスの* loadTrustMaterial()メソッドを使用して、キーストアファイルとそのパスワード(デフォルトでは *changeit )をロードします。
ステップ3-SSLContextオブジェクトを作成する
SSLContextオブジェクトは、セキュアソケットプロトコルの実装を表します。 * build()*メソッドを使用してSSLContextを構築します。
ステップ4-SSLConnectionSocketFactoryオブジェクトの作成
これはさまざまな方法で作成できます。 SSLConnectionSocketFactory オブジェクトの作成方法に応じて、すべてのホストを許可したり、自己署名証明書のみを許可したり、特定のプロトコルのみを許可したりできます。
特定のプロトコルのみを許可するには、SSLContextオブジェクトを渡すことで *SSLConnectionSocketFactory オブジェクトを作成します。プロトコルを表す文字列配列をサポートする必要があり、暗号スーツを表す文字列配列をサポートする必要があり、HostnameVerifierオブジェクトをコンストラクタに渡します。
すべてのホストを許可するには、 SSLContextオブジェクトと NoopHostnameVerifier オブジェクトを渡すことで SSLConnectionSocketFactory オブジェクトを作成します。
ステップ5-HttpClientBuilderオブジェクトを作成する
ステップ6-SSLConnectionSocketFactoryオブジェクトを設定する
- setSSLSocketFactory()メソッドを使用して、SSLConnectionSocketFactoryオブジェクトを *HttpClientBuilder に設定します。
ステップ7-CloseableHttpClientオブジェクトを構築する
- build()メソッドを呼び出して、 *CloseableHttpClient オブジェクトをビルドします。
ステップ8-HttpGetオブジェクトを作成する
URIを表す文字列を渡してHttpGetクラスをインスタンス化することにより、HTTP GETリクエストを作成します。
ステップ9-リクエストを実行する
- execute()*メソッドを使用してリクエストを実行します。
例
次の例は、SSLContrextのカスタマイズを示しています-
出力
実行すると、上記のプログラムは次の出力を生成します。