Edited at

Java 6 での tls1.2 を使った HTTPS 接続

More than 1 year has passed since last update.


環境


  • Java 6 (古い…)

  • TLS 1.2


TLS1.2

脆弱性が確認されていない暗号化通信プロトコル

HTTPS通信の際にも使用される。

SSL3.0, TLS1.0, TLS1.1 は脆弱性が見つかってしまった。

HTTPS通信では使用するプロトコルを限定できるので、相手側がTLS1.2 に限定した場合はこちらも対応しなければならない


Java 6

無償版ではバージョンアップがされていないので非対応…


試行錯誤

ググったら stackoverflow で似たような事をやろうとしている記事を発見。

自分なりに整理して github に載せました。(要bouncycastle)

https://github.com/a--i--r/TLSSocketFactory


TLSSocketFactory


  • シンプル形式


    HttpsURLConnection.setDefaultSSLSocketFactory(new TLSSocketFactory());


  • 自己証明書対応


    HttpsURLConnection.setDefaultSSLSocketFactory(new TLSSocketFactory(true));


  • 自己証明書+ソケットタイムアウト設定


    HttpsURLConnection.setDefaultSSLSocketFactory(new TLSSocketFactory(true, 60000));


HttpsURLConnection を使った通信が TLS1.2 に対応可能になります。

古いプログラムの対応等で使っていただければ嬉しいです。