4.6.2.2. 一方向 TLS の設定
本セクションの手順では、broker-client 接続のセキュリティーを保護するために一方向トランスポート層セキュリティー (TLS) を設定する方法を説明します。
一方向 TLS では、証明書を表示するブローカーのみが表示されます。この証明書は、クライアントがブローカーを認証するために使用されます。
前提条件
- クライアントがホスト名の検証を使用する場合のブローカー証明書の生成の要件を理解する必要があります。詳細は、「ホスト名検証用のブローカー証明書の設定」 を参照してください。
手順
ブローカーキーストアの自己署名証明書を生成します。
keytool -genkey -alias broker -keyalg RSA -keystore ~/broker.ks
$ keytool -genkey -alias broker -keyalg RSA -keystore ~/broker.ks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーキーストアから証明書をエクスポートし、クライアントと共有できるようにします。Base64 エンコードの
.pem
形式の証明書をエクスポートします。以下に例を示します。keytool -export -alias broker -keystore ~/broker.ks -file ~/broker_cert.pem
$ keytool -export -alias broker -keystore ~/broker.ks -file ~/broker_cert.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントで、ブローカー証明書をインポートするクライアントトラストストアを作成します。
keytool -import -alias broker -keystore ~/client.ts -file ~/broker_cert.pem
$ keytool -import -alias broker -keystore ~/client.ts -file ~/broker_cert.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理者として OpenShift Container Platform にログインします。以下に例を示します。
oc login -u system:admin
$ oc login -u system:admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーのデプロイメントが含まれるプロジェクトに切り替えます。以下に例を示します。
oc project my-openshift-project
$ oc project my-openshift-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 認証情報を保存するためのシークレットを作成します。以下に例を示します。
oc create secret generic my-tls-secret \ --from-file=broker.ks=~/broker.ks \ --from-file=client.ts=~/broker.ks \ --from-literal=keyStorePassword=<password> \ --from-literal=trustStorePassword=<password>
$ oc create secret generic my-tls-secret \ --from-file=broker.ks=~/broker.ks \ --from-file=client.ts=~/broker.ks \ --from-literal=keyStorePassword=<password> \ --from-literal=trustStorePassword=<password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記シークレットを生成する際に、OpenShift ではキーストアとトラストストアの両方を指定する必要があります。トラストストアキーは、基本的に
client.ts
という名前です。ブローカーとクライアント間の一方向 TLS では、トラストストアは実際には必要ありません。ただし、シークレットを正常に生成するには、一部の有効なストアファイルをclient.ts
の値として指定する必要があります。前述の手順では、以前に生成されたブローカーキーストアファイルを再利用することで、client.ts
の「dummy」値を指定します。これは、一方向 TLS に必要なすべての認証情報でシークレットを生成するには十分です。シークレットを Operator のインストール時に作成したサービスアカウントにリンクします。以下に例を示します。
oc secrets link sa/amq-broker-operator secret/my-tls-secret
$ oc secrets link sa/amq-broker-operator secret/my-tls-secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow セキュアなアクセプターまたはコネクターの
sslSecret
パラメーターにシークレット名を指定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow