IBM Cloud Docs
MQ on Cloud における MQ チャネルでの TLS セキュリティーの有効化

MQ on Cloud における MQ チャネルでの TLS セキュリティーの有効化

バージョン 9.2.1 リビジョン 2 より前の MQ on Cloud キュー・マネージャーは、デフォルトで TLS セキュリティーなしで構成されていました。 それより新しいバージョンでは、管理チャネルとアプリケーション・チャネルで TLS セキュリティーが使用されます。 このガイドでは、TLS セキュリティーについて説明しています。この情報を使用して、以前のキュー・マネージャーを新しいキュー・マネージャーと同じセキュリティー・レベルにアップグレードすることができます。 その後のセクションでは、アプリケーションがキュー・マネージャーに接続するために必要な証明書をダウンロードする方法について説明します。

アプリケーションまたは管理ソフトウェアは、MQ on Cloud キュー・マネージャー証明書の公開証明書を信頼する必要があります。 これは発行者の証明書、または個別のキュー・マネージャー証明書である場合があります。 どちらも MQ on Cloud サービス・コンソールからダウンロードできます。

MQ on Cloud キュー・インスタンスから以下のいくつかのデータを収集する必要があります。

  1. 管理ユーザーのユーザー名とパスワード。
  2. アプリケーション・ユーザーのユーザー名とパスワード。
  3. ルート CA 証明書から始まりキュー・マネージャー証明書で終了する証明書チェーン。
  4. JSON (CCDT データと呼ばれる) 形式でフォーマットされたキュー・マネージャーの記述。

以下の段落では、MQ on Cloud コンソールからのデータの収集について説明します。また、ローカル・マシン上で信頼できる公開証明書を管理するための鍵ストアのセットアップ・プロセスについても説明します。 この資料の末尾からリンクされた後続のページには、TLS を使用してリモートで管理する方法と、C および JMS MQ サンプルをキュー・マネージャーに接続する方法が示されています。

以下の説明では、CLOUD.ADMIN.SVRCONN チャネルを変更することになります。これにより、管理者は安全に接続できるようになります。 同様に CLOUD.APP.SVRCONN チャネルも変更します。このチャネルは C または JMS サンプルなどのアプリケーションで使用されます。

ご使用のオペレーティング・システム用の MQ ツール (runmqakm など) にアクセスできる必要があります。 MQ ツールは、Linux と Windows の MQ インストール済み環境の一部であり、最近、MacOS toolkit for Developers でも利用できるようになりました。 また、 「MQ ダウンロード」ページから、別個の MQ クライアントとしてダウンロードすることもできます。

参照資料

以下のリンクは、標準的な管理ツールを使用して MQ on Cloud キュー・マネージャーを管理する方法についての情報を得るのに役立ちます。 希望するツールを選択し、この資料の指示に従ってください。

MQ on Cloud キュー・マネージャーで行うタスク

前述のように、MQ チャネルのセキュリティーを有効にするには、暗号仕様を構成し、キュー・マネージャーとクライアントの間で (相互 TLS の場合、クライアントとキュー・マネージャーの間でも) パブリック証明書を交換する必要があります。 暗号仕様の構成は、3 つの標準 MQ 管理ツールのいずれかを使用して行うことが可能です。 それぞれの方法について以下で説明します。希望するツールを選択し、指示に従ってください。 ユーザー資格情報と証明書にアクセスするには、MQ on Cloud サービス・コンソールが必要です。

資格情報と証明書を収集するための MQ on Cloud サービス・コンソールの使用

  1. MQ on Cloud サービス・コンソールを開き、キュー・マネージャーを見つけます。

  2. 管理者ユーザーの資格情報を収集します。最初にキュー・マネージャー用に**「管理者」**タブを選択すると、管理者としての許可がユーザーに与えられます。 ユーザー名をメモし、API キー (後で接続するために使用するパスワード) をダウンロードするための手順に従う必要があります。

  3. JMS アプリケーションおよび C アプリケーション用のアプリケーション・ユーザーを作成します。キュー・マネージャー用の**「アプリケーション資格情報」**タブを選択し、プロセスに従って新しいアプリケーション資格情報を追加します。 生成された API キーを保存します。これはアプリケーションが接続するためのパスワードです。

  4. キュー・マネージャーの JSON CCDT の記述をダウンロードし、**「接続情報」**ボタンをクリックし、指示に従って CCDT 形式の接続情報をダウンロードします。 また、読みやすいテキスト・バージョンや、キュー・マネージャーの名前と URL の便利なソースをダウンロードすることもできます。

    ダウンロードされた CCDT ファイルは以下のようになります。

    {
    "channel": [
      {
      "name": "CLOUD.ADMIN.SVRCONN",
      "clientConnection": {
        "connection": [
        {
          "host": "myhost.cloud.ibm.com",
          "port": 31605
        }
        ],
        "queueManager": "MQ_ONE"
      },
      "transmissionSecurity": {
        "cipherSpecification": "ANY_TLS12_OR_HIGHER"
      },
      "type": "clientConnection"
      },
      {
      "name": "CLOUD.APP.SVRCONN",
      "clientConnection": {
        "connection": [
        {
          "host": "myhost.cloud.ibm.com",
          "port": 31605
        }
        ],
        "queueManager": "MQ_ONE"
      },
      "transmissionSecurity": {
        "cipherSpecification": "ANY_TLS12_OR_HIGHER"
      },
      "type": "clientConnection"
      }
    ]
    }
    

以下のセクションでは、チャネルに既に TLS が構成されていることを確認する方法と、構成されていない場合に構成して TLS セキュリティーを適用する方法について説明します。

MQ コンソールを使用したチャネルの変更

  1. キュー・マネージャーの**「管理」**タブに移動します。 「管理」タブを示すイメージ

  2. 「MQ コンソール」が選択されていることを確認し、**「MQ コンソールの起動」**をクリックします。

  3. サイド・メニューの「管理」をクリックして、MQ オブジェクトを表示します。「Web コンソール管理」タブを示すイメージ

  4. 「コミュニケーション」をクリックしてから、「アプリ・チャネル」をクリックします。 Web コンソール・チャネルを示すイメージ

  5. 表から CLOUD.ADMIN.SVRCONN の 3 つのドットをクリックし、「構成」を選択します。 チャネル構成の選択を示すイメージ

  6. **「編集」**ボタンを選択します。チャネル構成の選択を示すイメージ

  7. 「SSL」を選択し、**「SSL CipherSpec」**フィールドの値が ANY_TLS12_OR_HIGHER であることを確認します。 これはリストではないため、別の暗号仕様を選択する場合は、IBM MQ 資料の『CipherSpec の有効化』を参照してください。 暗号仕様の入力を示すイメージ

  8. 保存をクリックします。

  9. CLOUD.APP.SVRCONN チャネルに対して上記を繰り返します。

  10. 上記のいずれかのチャネルを変更した場合は、ここで、キュー・マネージャーの SSL セキュリティーをリフレッシュします。

    1. キュー・マネージャー・ページで、**「構成」**を選択します。 暗号仕様の入力を示すイメージ
    2. **「セキュリティー」**タブを選択します。 暗号仕様の入力を示すイメージ
    3. 3 点メニューを選択して、**「SSL のリフレッシュ」**を選択します。暗号仕様の入力を示すイメージ
    4. **「リフレッシュ」**をクリックして確定します。

これで、暗号仕様が構成されました。

MQ エクスプローラーを使用したチャネルの変更

  1. MQ エクスプローラーを使用したキュー・マネージャーへの接続を参照し、手順に従って MQ エクスプローラーを MQ on Cloud キュー・マネージャーに接続します。

  2. 「MQ エクスプローラー - ナビゲーター」で、次の手順を実行します。

    1. **「キュー・マネージャー」にナビゲートし、対象のキュー・マネージャーを展開して「チャネル」**をクリックします。
    2. **「チャネル」パネルで、「CLOUD.ADMIN.SVRCONN」**をダブルクリックします。
    3. **「CLOUD.ADMIN.SVRCONN」プロパティー・パネルで、「SSL」**を選択します。
    4. **「SSL 暗号仕様:」**フィールドで、暗号仕様が選択されていることを確認します (ANY_TLS12_OR_HIGHER)。
    5. **「適用」をクリックし、「OK」**をクリックします。
  3. チャネル CLOUD.APP.SVRCONN に対して上記を繰り返します。

    MQ エクスプローラーの SSL 仕様を示すイメージ

  4. いずれかのチャネルの暗号仕様を変更した場合は、セキュリティーをリフレッシュします。 **「キュー・マネージャー」で対象のキュー・マネージャーを右クリックし、「セキュリティー」->「SSL のリフレッシュ」**を選択します。

  5. これで、MQ チャネルで TLS 暗号化が有効になります。 MQ エクスプローラーが不要になった場合は、キュー・マネージャーを右クリックして**「切断」**を選択すると、キュー・マネージャーへの接続を切断することが可能です。

runmqsc を使用したチャネルの変更

  1. runmqsc を使用したキュー・マネージャーへの接続を参照し、手順に従って MQ on Cloud キュー・マネージャーに接続します。 後続のステップで使用するため、runmqsc コマンド・シェルを終了しないでください。

  2. キュー・マネージャーが 9.2.1 r1 以下の場合は、以下のコマンドを実行してチャネルを構成します。

      ALTER CHANNEL(CLOUD.ADMIN.SVRCONN) CHLTYPE(SVRCONN) SSLCAUTH(OPTIONAL) SSLCIPH(ANY_TLS12_OR_HIGHER)
      ALTER CHANNEL(CLOUD.APP.SVRCONN) CHLTYPE(SVRCONN) SSLCAUTH(OPTIONAL) SSLCIPH(ANY_TLS12_OR_HIGHER)
      REFRESH SECURITY TYPE(SSL)
      end
    
  3. これで、MQ チャネルで TLS 暗号化が有効になります。 runmqsc CLI が不要になった場合は、ここで終了できます。

鍵ストア・ファイルの作成

クライアント・プロセスがキュー・マネージャーを信頼できるようにするには、キュー・マネージャーによって提示される公開証明書をダウンロードする必要があります。

公開証明書のダウンロード

以下のステップを使用して、公開証明書をダウンロードし、その鍵ストアを作成することができます。

  1. **「鍵ストア」**タブをクリックし、「使用中: キュー・マネージャー」とマークされている証明書を探します (デフォルトでは、これは qmgrcert_yyyymm)。

    リーフ証明書のダウンロードを示すイメージ

PKCS12 形式で鍵ストア・ファイルを作成します。

クライアント鍵ストアを作成し、キュー・マネージャーの証明書チェーンの公開部分をその中にコピーします。

  1. 「runmqakm」ツールを使用してクライアント鍵ストアを作成します。

    runmqakm -keydb -create -db key.kdb -pw <your password> -type pkcs12 -expire 0 -stash
    
    # In some operating systems you may have to update the file permissions to make the keystore readable
    chmod +rw key.kdb
    
  2. キュー・マネージャー証明書を鍵ストアにインポートします (これは、前に MQ on Cloud ユーザー・インターフェースからダウンロードした qmgrcert です)。

    runmqakm -cert -add -db key.kdb -file qmgrcert_yyyymm.pem -label qmgrcert -stashed -type pkcs12 -format ascii
    
  3. 証明書が追加されていることを確認します。

    runmqakm -cert -list -db key.kdb
    

上記のタイプ・パラメーターは pkcs12 です。 一部のサンプルでは kdb の使用を提案していますが、結果の key.kdb を鍵ツールで読み取ることができないため、この演習では pkcs12 の使用が推奨されます。

Windows および Linux での JKS 形式の鍵ストア・ファイルの作成

JKS 鍵ストアを作成し、キュー・マネージャー証明書チェーンの公開部分をその鍵ストアにコピーします。

  1. 'ikeycmd' ツールを使用してクライアント鍵ストアを作成します。

    ikeycmd -keydb -create -db key.jks -pw <your password> -type jks -expire 0 -stash
    
    # In some operating systems you may have to update the file permissions to make the keystore readable
    chmod +rw key.jks
    
  2. キュー・マネージャー証明書を鍵ストアにインポートします (これは、前に MQ on Cloud ユーザー・インターフェースからダウンロードした qmgrcert です)。

    ikeycmd -cert -add -db key.jks -file qmgrcert_yyyymm.pem -label qmgrcert -pw <your password>
    
  3. 証明書が追加されていることを確認します。

    ikeycmd -cert -list -db key.jks
    

Mac OSX での JKS 形式の鍵ストア・ファイルの作成

JKS 鍵ストアを作成し、キュー・マネージャー証明書チェーンの公開部分をその鍵ストアにコピーします。

  1. クライアント鍵ストアを作成し、証明書をインポートします。

    keytool -importcert -file qmgrcert_yyyymm.pem  -alias qmgrcert  -keystore key.jks -storepass <your password>
    
  2. 証明書が追加されていることを確認します。

    keytool -list -keystore key.jks -storepass <your password>
    

次のステップ

管理を保護する

次のステップでは、キュー・マネージャー証明書を信頼するための通信のクライアント・エンドを構成します。 使用したい管理ツールを選択し、以下の該当する指示に従ってください。

アプリケーション接続を保護する

次のステップは、キュー・マネージャーへの接続時に TLS 暗号化を使用するようにアプリケーション接続を構成するためのものです。