4.4.4.2. 外部クライアントからのブローカーへの接続

外部クライアントにアクセプターを公開する場合 (つまり expose パラメーターの値を true に設定して)、デプロイメントの各ブローカー Pod に専用のサービスと Route が自動的に作成されます。指定のブローカー Pod で設定された Routes を表示するには、OpenShift Container Platform Web コンソールの Pod を選択し、Routes タブをクリックします。

外部クライアントはブローカー Pod 用に作成される Route の完全なホスト名を指定して、ブローカーに接続できます。基本的な curl コマンドを使用して、この完全なホスト名への外部アクセスをテストできます。以下に例を示します。

$ curl https://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain

Route の完全なホスト名は、OpenShift ルーターをホストするノードに解決する必要があります。OpenShift ルーターは、ホスト名を使用して、OpenShift 内部ネットワーク内のトラフィックを送信する場所を判別します。

デフォルトでは、OpenShift ルーターは、セキュアでないトラフィック (SSL 以外) トラフィックとポート 443 (SSL で暗号化した) トラフィックに対してポート 80 をリッスンします。HTTP 接続の場合、ルーターはセキュアな接続 URL (https) を指定する場合 (https) またはポート 80 を指定する場合は、トラフィックをポート 443 に自動的に転送します。

HTTP 以外の接続の場合:

  • クライアントは、接続 URL の一部としてポート番号 (ポート 443 など) を明示的に指定する必要があります。
  • 一方向 TLS では、クライアントは接続 URL の一部としてトラストストアと対応するパスワードへのパスを指定する必要があります。
  • 双方向 TLS の場合、クライアントは接続 URL の一部としてそのキーストアと対応するパスワードへのパス指定する必要があります。

以下は、サポートされるメッセージングプローブ用のクライアント接続 URL の例は次のとおりです。

一方向 TLS を使用する外部 Core クライアント

tcp://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain:443?useTopologyForLoadBalancing=false&sslEnabled=true \
&trustStorePath=~/client.ts&trustStorePassword=<password>

注記

外部コアクライアントはブローカーによって返されるトポロジー情報を使用できないため、useTopologyForLoadBalancing キーは接続 URL で false に明示的に設定されます。このキーが true に設定されているか、値を指定しないと、DEBUG ログメッセージが作成されます。

双方向 TLS を使用する外部 Core クライアント

tcp://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain:443?useTopologyForLoadBalancing=false&sslEnabled=true \
&keyStorePath=~/client.ks&keyStorePassword=<password> \
&trustStorePath=~/client.ts&trustStorePassword=<password>

一方向 TLS を使用する外部 OpenWire クライアント

ssl://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain:443"

# Also, specify the following JVM flags
-Djavax.net.ssl.trustStore=~/client.ts -Djavax.net.ssl.trustStorePassword=<password>

双方向 TLS を使用する外部 OpenWire クライアント

ssl://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain:443"

# Also, specify the following JVM flags
-Djavax.net.ssl.keyStore=~/client.ks -Djavax.net.ssl.keyStorePassword=<password> \
-Djavax.net.ssl.trustStore=~/client.ts -Djavax.net.ssl.trustStorePassword=<password>

一方向 TLS を使用する外部 AMQP クライアント

amqps://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain:443?transport.verifyHost=true \
&transport.trustStoreLocation=~/client.ts&transport.trustStorePassword=<password>

双方向 TLS を使用する外部 AMQP クライアント

amqps://my-broker-deployment-0-svc-rte-my-openshift-project.my-openshift-domain:443?transport.verifyHost=true \
&transport.keyStoreLocation=~/client.ks&transport.keyStorePassword=<password> \
&transport.trustStoreLocation=~/client.ts&transport.trustStorePassword=<password>