6.4.3. SSL ルートの作成

OpenShift クラスター外のクライアントアプリケーションがブローカーに送信できるようにするには、ブローカー Pod の SSL ルートを作成する必要があります。OpenShift ルーターには、トラフィックを正しいサービスに送信するために Server Name Indication(SNI) が必要なため、SSL 対応のルートのみを外部クライアントに公開できます。

アプリケーションテンプレートを使用して OpenShift Container Platform にブローカーをデプロイする場合に、AMQ_PROTOCOL テンプレートパラメーターを使用して、ブローカーが使用するメッセージングプロトコルをコンマ区切りの一覧で指定します。使用可能なオプションは、 amqpmqttopenwirestomp、および hornetq です。プロトコルを指定しない場合には、全プロトコルが利用できます。

ブローカーが使用するメッセージングプロトコルごとに、OpenShift はブローカー Pod の専用ポートを公開します。さらに、OpenShift は すべてのプロトコル の多重化ポートを自動的に作成します。OpenShift 外のクライアントアプリケーションは、使用するプロトコルでどのプロトコルがサポート対象であるかに拘らず、全プロトコル対応の多重化ポートを常に使用して、ブローカーに接続します。

すべてのプロトコルポートへの接続は、OpenShift が自動作成するサービスおよび作成する SSL ルートを介して行われます。ブローカー Pod 内のヘッドレスサービスは、クライアントが直接アクセスできる、独自のサービスやルートがない、他のプロトコル固有のポートにアクセスできるようにします。

各種 AMQ Broker トランスポートプロトコルに対して OpenShift が公開するポートを以下の表に示します。ブローカーは、OpenShift クラスター内のトラフィックに対する SSL 以外のポートをリッスンします。SSL ベース (*.-ssl.yaml) テンプレートを使用してデプロイメントを作成した場合に、ブローカーは、OpenShift 外部のクライアントからトラフィックを SSL 対応のポートでリッスンします。

表6.2 AMQ Broker トランスポートプロトコルのデフォルトポート

AMQ Broker トランスポートプロトコルデフォルトのポート

すべてのプロトコル (OpenWire、AMQP、STOMP、MQTT、および HornetQ)

61616

すべてのプロトコル - SSL(OpenWire AMQP、STOMP、MQTT、および HornetQ)

61617

AMQP

5672

AMQP (SSL)

5671

MQTT

1883

MQTT (SSL)

8883

STOMP

61613

STOMP (SSL)

61612

以下は、ブローカー Pod での SSL ルート作成時に注意する必要がある点です。

  • ルートの作成時に、TLS TerminationPassthrough に設定すると、OpenShift ルーターは復号および再送信を行わずに AMQ Broker に対する全通信をリレーします。

    注記

    OpenShift ルーターは HTTP プロキシーである HAProxy を使用するため、通常の HTTP トラフィックには TLS パススルールートは必要ありません。

  • 外部ブローカークライアントは、SSL 接続のブローカー URL 設定時に OpenShift ルーターポート (443) を指定する必要があります。クライアント接続が OpenShift ルーターポートを指定する場合、ルーターはクライアントトラフィックを転送する必要のあるブローカー Pod の適切なポートを決定します。

    注記

    デフォルトで、OpenShift ルーターは 443 ポートを使用します。ただし、ルーターは ROUTER_SERVICE_HTTPS_PORT 環境変数に指定された値に基づいて異なるポート番号を使用するように設定できます。詳細は OpenShift Container Platform Routes を参照してください。

  • ブローカー URL にフェイルオーバープロトコルを含めると、Pod が再起動またはアップグレードされた場合に備えてクライアント接続が維持されます。

    先ほどの両設定が以下の例のようになります。

    ...
    factory.setBrokerURL("failover://ssl://<broker-pod-route-name>:443");
    ...

関連情報

  • SSL をサポートするブローカーのデプロイと SSL ルートの作成をサポートして外部クライアントアクセスを有効にするブローカーの例の完全な詳細は、SSL を 使用した基本的なブローカーのデプロイ を参照してください。
  • クラスター化されたブローカーが AMQ Broker 管理コンソールの独自のインスタンスに接続するためのルートを作成する例は、AMQ Broker 管理コンソールのルートの作成 を参照してください。