JMeterで「javax.net.ssl.SSLException / fatal alert: protocol_version」が出た場合の対処法

古めのJMeter環境で負荷テストを実施しようとしたところ、次のようなエラーが出てきました。

Non HTTP response code: javax.net.ssl.SSLException:Non HTTP response message: Received fatal alert: protocol_version

昨年までは出ていなかったのに。。。ということで、理由と解決方法について記録しておきます。

エラー原因

エラーの原因は、TLS1.0/1.1の無効化に起因するもののようです。

Javaのバージョンを確認してみると、Java7を利用していました。

# java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (rhel-2.6.7.2.el6_8-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

Javaのドキュメントにも気になる文言の記載があります。

脚注 1 Java SE 7 リリースの SunJSSE は TLS 1.1 と TLS 1.2 をサポートしますが、クライアント接続の場合はどちらのバージョンもデフォルトで有効になりません。一部のサーバーは、上位互換性を正しく実装していないため、TLS 1.1 または TLS 1.2 クライアントとの通信を拒否します。SunJSSE は、相互運用性を確保するため、クライアント接続の場合は TLS 1.1 または TLS 1.2 をデフォルトで有効にしません。
参考:https://docs.oracle.com/javase/jp/7/technotes/guides/security/SunProviders.html

対処法

結論としては、Java8にアップデート、Java7の最新にバージョンアップの2種類で解決しました。

Java8へバージョンアップ

Java7の削除を行い、Java8へのバージョンアップを行いました。

Java8ダウンロード

下記ページよりダウンロードを行います。ダウンロードが完了したら、サーバ上へアップロードします。

https://www.java.com/ja/download/linux_manual.jsp

Java7削除

Java7の削除を行います。

# java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (rhel-2.6.7.2.el6_8-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

# yum remove java*

Java8インストール

# rpm -ivh jre-8u261-linux-x64.rpm
# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

Java7の最新にバージョンアップ

Java8にしなくても、Java7の最新までバージョンアップすることでもエラーの解消ができました。

#yum update java*
#java -version
java version "1.7.0_261"
OpenJDK Runtime Environment (rhel-2.6.22.1.el6_10-x86_64 u261-b02)
OpenJDK 64-Bit Server VM (build 24.261-b02, mixed mode)

システムプロパティの指定

※システムプロパティに、下記を入れることで解決するような記事もありましたが、残念ながらうまくいきませんでした

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

まとめ

JMeterで、「javax.net.ssl.SSLException」が出た場合の対処法についてまとめてみました。

JMeterの環境といえども、常に最新バージョンの構成を維持できればベストです。しかしながら、定期的に、年1、2回の頻度で行う場合は、どうしても環境が古くなりがちです。古いバージョンを使っていると、今回のようなエラーが出てくることがあるので、可能な限り最新バージョンで維持していきたいですね。

コメントは受け付けていません。