1.2.12. OpenSSL プロバイダーを使用した TLS 1.3 プロトコルのサポートの有効化

ssl-context 設定で cipher-suite-names 属性を設定して、TLS の OpenSSL プロバイダーで TLS 1.3 プロトコルのサポートを有効にできます。OpenSSL TLS プロバイダーを使用するように JBoss EAP を設定するには、以下のいずれかの方法を選択します。

  • デフォルトで OpenSSL TLS プロバイダーを使用するように Elytron サブシステムを設定します。
  • OpenSSL TLS プロバイダーを使用するように server-ssl-context コンポーネントまたは client-ssl-context コンポーネントの providers 属性を設定します。
重要

TLS 1.3 を JDK 11 で実行時のパフォーマンスは、TLS 1.2 と比較すると、低下する可能性があります。これは、クライアントがサーバーに非常に多くの TLS 1.3 要求を行う場合に発生する可能性があります。新しい JDK バージョンにアップグレードさせることで、パフォーマンスを向上できます。実稼働環境で有効にする前に、TLS 1.3 を使用する設定で、パフォーマンス低下がないかをテストします。

前提条件

  • アプリケーションに一方向 SSL/TLS または双方向 SSL/TLS を有効にします。

手順

  1. OpenSSL TLS プロバイダーを使用するように JBoss EAP 7.4 インスタンスを設定するには、以下のいずれかの方法を選択します。

    1. デフォルトでは OpenSSL TLS プロバイダーを使用するように elytron サブシステムを設定します。これには、グローバルに登録されているプロバイダーをすべて登録した後に OpenSSL TLS プロバイダーを登録するデフォルトの final-providers 設定を削除します。

      /subsystem=elytron:undefine-attribute(name=final-providers)
      reload

      次に、グローバルに登録されたすべてのプロバイダーの前に OpenSSL TLS プロバイダーを登録します。

      /subsystem=elytron:write-attribute(name=initial-providers, value=combined-providers)
    2. OpenSSL TLS プロバイダーを使用するように server-ssl-context または client-ssl-contextproviders 属性を設定します。

      Server SSC と呼ばれる既存の server-ssl-contextproviders 属性を設定する例

      /subsystem=elytron/server-ssl-context=serverSSC:write-attribute(name=providers,value=openssl)
      reload

  2. 必要に応じて、TLS 1.3 プロトコル以外のプロトコルを使用するように ssl-context を設定している場合、TLS 1.3 プロトコルを含めるように ssl-contextprotocols 属性を設定する必要があります。

    /subsystem=elytron/server-ssl-context=serverSSC:write-attribute(name=protocols,value=[TLSv1.3])
  3. Ssl- context 設定で cipher-suite-names 属性を設定して、OpenSSL プロバイダーで TLS 1.3 プロトコルのサポートを有効にします。以下の例では、TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256cipher-suite-names 属性の値として設定します。

    /subsystem=elytron/server-ssl-context=serverSSC:write-attribute(name=cipher-suite-names,value=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256)
  4. JBoss EAP インスタンスをリロードします。

    reload
  5. 必要に応じて、TLS 1.3 プロトコルおよび TLS 1.3 暗号スイートを使用して、サーバーで SSL 暗号化接続を正常に確立できるテスト。Curl などのツールを使用して 設定の出力を確認します。

    curl -v https://<ip_address>:<ssl_port>

    SSL 接続のセキュリティーを保護するために、TLS 1.3 プロトコルのある TLS_AES_256_GCM_SHA384 の出力例。

    SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
    * ALPN, server accepted to use h2
    * Server certificate:
    *  subject: C=Unknown; ST=Unknown; L=Unknown; O=Unknown; OU=Unknown; CN=localhost
    *  start date: Oct  6 14:58:16 2020 GMT
    *  expire date: Nov  5 15:58:16 2020 GMT
    *  issuer: C=Unknown; ST=Unknown; L=Unknown; O=Unknown; OU=Unknown; CN=localhost
    *  SSL certificate verify result: self signed certificate (18), continuing anyway.

関連情報