環境

  • 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 に対応可能になります。
古いプログラムの対応等で使っていただければ嬉しいです。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.