【エラー解決方法】SSLExceptionが発生!? を解決する方法

こんにちわ。井上です。
 
家で寛いでいると、突然エラーメールが来ました。システムをリリースした覚えもないのになぜ!? ……と思い、あまり見たことないエラーだったので、少し調べてみました。
 

目次

  1. SSLException: Received fatal alert: protocol_version
  2. エラーの発生した環境
  3. エラーの原因
  4. 解決方法
  5. まとめ

SSLException: Received fatal alert: protocol_version

今回発生したエラーは以下になります。

Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version
       at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
       at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
       at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
       at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
       at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
       at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
       at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
       at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
       at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
       at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)
       at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
       at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
...(省略)

 
バッチシステムから他社システムへ接続してデータを取得するというシステムで発生したエラーになります。

エラーの発生した環境

エラーの発生した環境は以下になります。
 

Java
1.7.0_51

エラーの原因

今回発生したのはバッチシステムだったのですが、実は同じバッチを別環境でも実行しています。そちらでは同じエラーが発生しませんでした。
 
これが解決へのヒントとなりました。
 
エラーが発生しなかった環境は以下になります。
 

Java
1.8.0_51

解決方法

エラーの発生した環境と発生しなかった環境を比べると、Javaのバージョンが異なります。JavaのバージョンによってTLSのサポートが異なります。

Java7 TLS v1
Java8 TLS v1.2

 
Java7のままでTLS v1.2を使用することで問題は解決します。バッチの起動時引数に以下の2つを追加しました。

-Dhttps.protocols=TLSv1.2
-Djdk.tls.client.protocols=TLSv1.2

まとめ

今回のエラーはおそらく相手側のシステムを更新したことによって、弊社側のシステムが動かなくなるというものでした。
 
Java7もリリースされてからだいぶ経ちました。最新でとは言いませんが、サーバー環境のアップデートも随時必要なのだと感じた一日でした。

記事をシェア
MOST VIEWED ARTICLES