サウスバウンド トラフィック用の TLS 1.3 の構成

このページでは、Apigee Message Processor でサウスバウンド トラフィック(Message Processor とバックエンド サーバー間のトラフィック)に TLS 1.3 を構成する方法について説明します。

Java の TLS 1.3 機能の詳細については、JDK 8u261 アップデート リリースノートをご覧ください。

TLS 1.3 を有効にする手順は、使用している Java のバージョンによって異なります。Message Processor にインストールされている Java のバージョンを確認するには、以下の Message Processor 内の Java のバージョンを確認するをご覧ください。

TLS v1.3 と Java のバージョン

TLS 1.3 機能は、次のバージョンの Java で導入されました。

  • Oracle JDK 8u261
  • OpenJDK 8u272

次の Java バージョンでは、TLS v1.3 機能は存在しますが、クライアント ロールではデフォルトで有効になっていません。

  • Oracle JDK 8u261 以降、Oracle JDK 8u341 未満
  • OpenJDK 8u272 以降、OpenJDK 8u352 未満

これらのバージョンのいずれかを使用している場合は、TLS v1.3 がデフォルトで有効になっていない場合に有効にする方法で説明されているように、TLS v1.3 を有効にする必要があります。

次のいずれかのバージョンを使用している場合は、クライアント ロールで TLS v1.3 がデフォルトで有効になっているはずです(Message Processor はサウスバウンド TLS 接続のクライアントとして機能します)。そのため、何もする必要はありません。

  • Oracle JDK 8u341 以降
  • OpenJDK 8u352 以降

TLS v1.3 が機能するためには、次のすべてが成り立っている必要があります。

  • Message Processor の基盤となる Java で、TLS v1.3 をサポートする必要があります。
  • Message Processor で Java で TLS v1.3 を有効にする必要があります。
  • Message Processor アプリケーションで TLS v1.3 を有効にする必要があります。

TLS v1.3 がデフォルトで有効になっていない場合に Java で有効にする方法。

このセクションでは、次のいずれかのバージョンの Java を使用している場合に TLS v1.3 を有効にする方法について説明します。

  • Oracle JDK 8u261 以降、Oracle JDK 8u341 未満
  • OpenJDK 8u272 以降、OpenJDK 8u352 未満

Message Processor で、Java プロパティ jdk.tls.client.protocols を設定します。値はカンマ区切りで、TLSv1TLSv1.1TLSv1.2TLSv1.3SSLv3 のうち 1 つ以上を含めることができます。

たとえば、-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 を設定すると、クライアント プロトコル TLSv1.2TLSv1.3 が有効になります。

Edge コンポーネントで JVM プロパティを設定する方法については、他の JVM プロパティを変更するをご覧ください。

TLS v1、v1.1、v1.2、v1.3 プロトコルを有効にするには:

  1. Message Processor 構成ファイル(/opt/apigee/customer/application/message-processor.properties)で次の構成を設定します。
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. Message Processor を再起動します。
>

TLS v1.3 がデフォルトで有効になっている場合に無効にする方法

Oracle JDK 8u341 以降または OpenJDK 8u352 以降を使用している場合は、クライアントに対して TLSv1.3 がデフォルトで有効になっています。このような場合に TLS v1.3 を無効にするには、次の 2 つの方法があります。

  • ターゲット サーバーの SSLInfo を構成し、プロトコルのリストに TLSv1.3 が含まれていないことを確認します。 TLS/SSL TargetEndpoint 構成要素をご覧ください。注: ターゲット サーバー構成でプロトコルが指定されていない場合、Java でサポートされているプロトコルはすべて、Client handshake でオプションとして送信されます。
  • プロトコルを完全に無効にして、Message Processor で TLS v1.3 を無効にします。 Message Processor の TLS プロトコルを設定するをご覧ください。

Message Processor で Java のバージョンを確認する

Message Processor にインストールされている Java のバージョンを確認するには、Message Processor ノードにログインして、次のコマンドを実行します。

java -version

次の出力例は、OpenJDK 8u312 がインストールされていることを示しています。

$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

サポートされている暗号

現在、Java 8 は 2 つの TLS v1.3 暗号をサポートしています。

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

openssl を使用して、ターゲット サーバーが TLS v1.3 と、以下の暗号の少なくとも 1 つをサポートしているかどうかを確認できます。この例では、TLS v1.3 が有効になっている openssl11 ユーティリティを使用しています。

$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3