ページの先頭です。
ここから本文です。

お知らせ

[WebOTX] RHEL 8 環境で JMXMP+SSL プロトコルによるドメイン接続に失敗する問題と対策について


概要

Red Hat Enterprise Linux 8 かつ Red Hat OpenJDK 8 もしくは 11 で WebOTX を利用している場合に、otxadmin コマンドなどのクライアントから SSL 付きの JMXMP プロトコルでドメインに接続しようとすると失敗することがあります。


影響のある製品

< Linux >

  • WebOTX Application Server Express V10.3
  • WebOTX Application Server Standard V10.3
  • WebOTX Administrator V10.3
  • WebOTX OLF/TP Connect for Container V10.3

(※) WebOTX Enterprise Service Bus V10.3、WebOTX Portal V10.1にバンドルされているWebOTX Application Server Expressを使用している場合にも該当します。


詳細

WebOTX では otxadmin コマンドなどの運用管理クライアント(以下、クライアント)からドメインに接続する際には、既定でシンプルな認証とセキュリティ保護機能を備えた JRMP プロトコルを使用しますが、ドメイン側で JMXMP プロトコルと SSL を有効化した上で、以下のコマンドを使用して接続することで通信のセキュリティを強化することができます。

  • JMXMP+SSLで接続する方法(クライアント)
    otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインのJMXMP管理ポート> --protocol jmxmp --secure=true

しかし、次の条件をすべて満たす場合は上記のコマンドによるドメイン接続に失敗することがあります。

  • OS が Red Hat Enterprise Linux 8(以下RHEL 8)
  • WebOTX が使用する Java が Red Hat OpenJDK 8 もしくは 11
    (※) WebOTX のドメインと運用管理クライアントのいずれか、もしくは両方が対象の Java を使用している場合に該当します。
接続に失敗した場合は、クライアント側に次のようなエラーメッセージが出力されます。
org.glassfish.api.admin.CommandException: Unable to connect to admin-server at given host: [localhost] and port: [6712].
Please check if this server is up and running and that the host and port provided are correct.
Cause : No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

接続に失敗する原因は次の2点です。

  1. TLSのバージョンの問題
    WebOTX の JMXMP+SSL 通信では既定で TLSv1 を使用しますが、 RHEL 8 の既定値では TLSv1 および TLSv1.1 は無効化されているため通信に失敗します。
  2. DH鍵のビット長の問題
    OpenJDK の既定のDH鍵の長さは1024ビットであり、 WebOTX はこの設定に従って1024ビットのDH鍵を用いて TLS 通信を行います。 一方で RHEL 8 の既定値では2048ビット未満のDH鍵による暗号通信が無効化されているため、通信に失敗します。 なお、RHEL 8は OpenJDK の既定DH鍵の長さを2048ビットに変更することを意図した定義を行っていますが、 RHEL 8 の不具合(Bug 1883312)によりこの定義は有効化されていません。

対処方法

WebOTX のクライアントとドメインの通信を TLSv1.2 かつDH鍵の長さを2048ビットで行う方法を説明します。

  1. 対象のドメインを停止します。
    > otxadmin stop-domain <対象ドメイン>
  2. /etc/crypto-policies/back-ends/java.config をテキストエディタで開き、jdk.tls.disabledAlgorithms の 「DH keySize < 2048」 を 「DH keySize < 1024」に変更し、更に「TLSv1」 を削除します。
    (この設定変更は一時的に行うものであり、手順7で元に戻します。)

    [java.configの変更例]
    jdk.tls.disabledAlgorithms=DH keySize < 1024, SSLv2, SSLv3, TLSv1.1, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
  3. 対象のドメインを起動します。
    > otxadmin start-domain <対象のドメイン>
  4. 対象のドメインに接続して、ドメインの暗号プロトコルをTLSv1.2に、DH鍵のビット長を2048ビットにそれぞれ設定します。
    otxadmin
    otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインのJMXMP管理ポート> --protocol jmxmp --secure=true
    otxadmin> set server.admin-service.jmx-connector.system-option.tls-protocol=TLSv1.2
    otxadmin> create-jvm-options -Djdk.tls.ephemeralDHKeySize=2048
    otxadmin> exit
  5. 対象のドメインを停止します。
    > otxadmin stop-domain <対象のドメイン>
  6. ${INSTALL_ROOT}/config/otxadmin.properties をテキストエディタで開き、次の定義を追加します。
    ファイルが存在しない場合は作成します。

    [otxadmin.propertiesに追加する定義]
    jdk.tls.ephemeralDHKeySize=2048
    com.nec.webotx.jmxmp.client.tls.protocol=TLSv1.2
  7. /etc/crypto-policies/back-ends/java.config をテキストエディタで開き、jdk.tls.disabledAlgorithms の 「DH keySize < 1024」 を 「DH keySize < 2048」に変更し、更に「TLSv1」 を追加します。
    (手順2の作業を元に戻します。)

    [java.configの変更例]
    jdk.tls.disabledAlgorithms=DH keySize < 2048, SSLv2, SSLv3, TLSv1, TLSv1.1, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
  8. 対象のドメインを起動します。
    > otxadmin start-domain <対象のドメイン>

以上で JMXMP+SSL プロトコルによるドメイン接続ができるようになります。


回避方法

回避方法はありません。


関連情報

RHEL 8のDH鍵のビット長に関する不具合の詳細は、以下のURLを参照してください。


更新履歴

2021/01/12 初版

製品名カテゴリ

WebOTX Application Server
WebOTX Service Integration
WebOTX Portal

対象製品

品名: WebOTX Application Server Express V10.3
品名: WebOTX Application Server Standard V10.3
品名: WebOTX Administrator V10.3
品名: WebOTX OLF/TP Connect for Container V10.3
  • コンテンツID: 3010103326
  • 公開日: 2021年01月13日
  • 最終更新日:2021年01月13日
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。