2.4. リモート JMX SSL の有効化


概要

Red Hat JBoss Fuse は、MBean を使用した Karaf コンテナーのリモート監視および管理を可能にする JMX ポートを提供します。ただし、デフォルトでは、JMX 接続を介して送信するクレデンシャルは暗号化されておらず、スヌーピングに対して脆弱です。JMX 接続を暗号化し、パスワードスヌーピングから保護するには、SSL で JMX を設定して JMX 通信を保護する必要があります。

SSL で JMX を設定するには、次の手順を実行します。

SSL アクセスで JMX を設定した後、接続をテストする必要があります。

警告

SSL/TLS セキュリティーを有効にする予定がある場合は、Poodle 脆弱性 (CVE-2014-3566) に対して保護するために、SSLv3 プロトコルを明示的に無効にする必要があります。詳細は、Disabling SSLv3 in JBoss Fuse 6.x and JBoss A-MQ 6.x を参照してください。

注記

Red Hat JBoss Fuse の実行中に SSL で JMX を設定した場合は、再起動する必要があります。

前提条件

以下を実行していない場合、実行する必要があります。

  • JAVA_HOME 環境変数を設定します。
  • admin ロールでの Karaf ユーザーの設定

    InstallDir/etc/users.properties ファイルを編集し、以下のエントリーを 1 行に追加します。

    admin=YourPassword,admin

    これにより、ユーザー名 admin、パスワード YourPassword、および admin ロールを持つ新規ユーザーが作成されます。

jbossweb.keystore ファイルを作成します

コマンドプロンプトを開き、現在の場所が Karaf インストールの etc/ ディレクトリーであることを確認します。

cd etc

コマンドラインで、アプリケーションに適した -dname 値 (識別名) を使用して、以下のコマンドを入力します。

$JAVA_HOME/bin/keytool -genkey -v -alias jbossalias -keyalg RSA -keysize 1024 -keystore jbossweb.keystore -validity 3650 -keypass JbossPassword -storepass JbossPassword -dname "CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, S=Mass, C=USA"
重要

1 つのコマンドラインでコマンド全体を入力します。

このコマンドは、次のような出力を返します。

Generating 1,024 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 3,650 days
	for: CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, ST=Mass, C=USA
New certificate (self-signed):
[
[
  Version: V3
  Subject: CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, ST=Mass, C=USA
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 1024 bits
  modulus: 1123086025790567043604962990501918169461098372864273201795342440080393808
     1594100776075008647459910991413806372800722947670166407814901754459100720279046
     3944621813738177324031064260382659483193826177448762030437669318391072619867218
     036972335210839062722456085328301058362052369248473659880488338711351959835357
  public exponent: 65537
  Validity: [From: Thu Jun 05 12:19:52 EDT 2014,
               To: Sun Jun 02 12:19:52 EDT 2024]
  Issuer: CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, ST=Mass, C=USA
  SerialNumber: [    4666e4e6]

Certificate Extensions: 1
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: AC 44 A5 F2 E6 2F B2 5A   5F 88 FE 69 60 B4 27 7D  .D.../.Z_..i`.'.
0010: B9 81 23 9C                                        ..#.
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: 01 1D 95 C0 F2 03 B0 FD   CF 3A 1A 14 F5 2E 04 E5  .........:......
0010: DD 18 DD 0E 24 60 00 54   35 AE FE 36 7B 38 69 4C  ....$`.T5..6.8iL
0020: 1E 85 0A AF AE 24 1B 40   62 C9 F4 E5 A9 02 CD D3  .....$.@b.......
0030: 91 57 60 F6 EF D6 A4 84   56 BA 5D 21 11 F7 EA 09  .W`.....V.]!....
0040: 73 D5 6B 48 4A A9 09 93   8C 05 58 91 6C D0 53 81  s.kHJ.....X.l.S.
0050: 39 D8 29 59 73 C4 61 BE   99 13 12 89 00 1C F8 38  9.)Ys.a........8
0060: E2 BF D5 3C 87 F6 3F FA   E1 75 69 DF 37 8E 37 B5  ...<..?..ui.7.7.
0070: B7 8D 10 CC 9E 70 E8 6D   C2 1A 90 FF 3C 91 84 50  .....p.m....<..P

]
[Storing jbossweb.keystore]

InstallDir/etc にファイル jbossweb.keystore が含まれるかどうかを確認します。

keystore.xml ファイルを作成してデプロイします

  1. 好みの XML エディターを使用して、< installDir> /jboss-fuse-7.8.0.fuse-780038-redhat-00001/etc ディレクトリーに keystore.xml ファイルを作成して保存します。
  2. このテキストをファイルに含めます。

    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.0.0">
    <jaas:keystore name="sample_keystore"
    rank="1"
    path="file:etc/jbossweb.keystore"
    keystorePassword="JbossPassword"
    keyPasswords="jbossalias=JbossPassword" />
    </blueprint>
  3. keystore.xml ファイルを InstallDir/deploy ディレクトリー (ホットデプロイディレクトリー) にコピーして、Karaf コンテナーにデプロイします。

    注記

    その後、keystore.xml ファイルをアンデプロイする必要がある場合は、Karaf コンテナーの実行中deploy/ ディレクトリーから keystore.xml ファイルを削除して実行できます。

必要なプロパティーを org.apache.karaf.management.cfg に追加します

InstallDir/etc/org.apache.karaf.management.cfg ファイルを編集して、ファイルの最後に次のプロパティーを含めます。

secured = true
secureProtocol = TLSv1
keyAlias = jbossalias
keyStore = sample_keystore
trustStore = sample_keystore
重要

Poodle 脆弱性 (CVE-2014-3566) から保護するには、secureProtocolTLSv1 に設定する必要があります。

注記

必要に応じて、enabledCipherSuites プロパティーを設定して、JMX TLS 接続に使用する特定の暗号スイートをリストできます。このプロパティーを設定すると、デフォルトの暗号スイートがオーバーライドされます。

Karaf コンテナーを再起動します。

新しい JMX SSL/TLS 設定を有効にするには、Karaf コンテナーを再起動する必要があります。

セキュアな JMX 接続のテスト

  1. コマンドプロンプトを開き、現在の場所が Fuse インストールの etc/ ディレクトリーであることを確認します。

    cd <installDir>/jboss-fuse-7.8.0.fuse-780038-redhat-00001/etc
  2. ターミナルを開き、次のコマンドを入力して JConsole を起動します。

    jconsole -J-Djavax.net.debug=ssl -J-Djavax.net.ssl.trustStore=jbossweb.keystore -J-Djavax.net.ssl.trustStoreType=JKS -J-Djavax.net.ssl.trustStorePassword=JbossPassword

    -J-Djavax.net.ssl.trustStore オプションは、jbossweb.keystore ファイルの場所を指定します (この場所を正しく指定しないと、SSL/TLS ハンドシェイクに失敗します)。-J-Djavax.net.debug=ssl 設定により SSL/TLS ハンドシェイクメッセージのロギングが有効になるため、SSL/TLS が正常に有効になっていることを確認できます。

    重要

    同じコマンドラインでコマンド全体を入力します。

  3. JConsole が開いたら、New Connection ウィザードで Remote Process オプションを選択します。
  4. Remote Process オプションで、service:jmx:<protocol>:<sap> 接続 URL に、次の値を入力します。

    service:jmx:rmi://localhost:44444/jndi/rmi://localhost:1099/karaf-root

    (etc/users.properties ファイルに設定されているように)Username および Password フィールドに有効な JAAS 認証情報を入力します。

    Username: admin
    Password: YourPassword
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.