第2章 OpenShift Container Platform に AMQ Interconnect をデプロイするための準備
AMQ Interconnect を OpenShift Container Platform にデプロイする前に、以下のいずれかの手順を実行します。
AMQ Interconnect を評価する場合、この手順をスキップすることができますが、Red Hat は必ず AMQ Interconnect の通信をセキュアにすることを推奨します。
2.1. SSL/TLS 認証用のシークレットの作成
Red Hat Integration - AMQ Certificate Manager Operator をインストールした場合、この手順は省略できます。AMQ Certificate Manager でネットワークのセキュリティーを保護する手順は、関連する手順に含まれます。OpenShift は Secrets
というオブジェクトを使用して、SSL/TLS 証明書などの機密情報を保持します。ルーター間のトラフィック、クライアントトラフィック、またはその両方のセキュリティーを保護する場合、SSL/TLS 証明書と秘密鍵を作成し、それらをシークレットとして OpenShift に提供する必要があります。
手順
ルーター間接続用に既存の認証局 (CA) 証明書がない場合は、これを作成します。
以下のコマンドは、ルーター間接続用の自己署名 CA 証明書を作成します。
# Create a new directory for the inter-router certificates. $ mkdir internal-certs # Create a private key for the CA. $ openssl genrsa -out internal-certs/ca-key.pem 2048 # Create a certificate signing request for the CA. $ openssl req -new -batch -key internal-certs/ca-key.pem -out internal-certs/ca-csr.pem # Self sign the CA certificate. $ openssl x509 -req -in internal-certs/ca-csr.pem -signkey internal-certs/ca-key.pem -out internal-certs/ca.crt
CA が署名したルーターの証明書を作成します。
これらのコマンドは、秘密鍵と証明書を作成し、直前の手順で作成した CA を使用して証明書に署名します。
# Create a private key. $ openssl genrsa -out internal-certs/tls.key 2048 # Create a certificate signing request for the router. $ openssl req -new -batch -subj "/CN=amq-interconnect.<project_name>.svc.cluster.local" -key internal-certs/tls.key -out internal-certs/server-csr.pem # Sign the certificate using the CA. $ openssl x509 -req -in internal-certs/server-csr.pem -CA internal-certs/ca.crt -CAkey internal-certs/ca-key.pem -out internal-certs/tls.crt -CAcreateserial
ここで、
<project_name>
は現在の OpenShift プロジェクトの名前です。秘密鍵、ルーター証明書、および CA 証明書を含むシークレットを作成します。
このコマンドは、直前の手順で作成した鍵および証明書を使用してシークレットを作成します。
$ oc create secret generic inter-router-certs-secret --from-file=tls.crt=internal-certs/tls.crt --from-file=tls.key=internal-certs/tls.key --from-file=ca.crt=internal-certs/ca.crt
(SASL でクライアントを認証するのではなく) クライアント接続の認証に SSL/TLS を使用する場合は、クライアント接続用に CA 証明書を作成します。
以下のコマンドは、クライアント接続用の自己署名 CA 証明書を作成します。
# Create a new directory for the client certificates. $ mkdir client-certs # Create a private key for the CA. $ openssl genrsa -out client-certs/ca-key.pem 2048 # Create a certificate signing request for the CA. $ openssl req -new -batch -key client-certs/ca-key.pem -out client-certs/ca-csr.pem # Self sign the certificate. $ openssl x509 -req -in client-certs/ca-csr.pem -signkey client-certs/ca-key.pem -out client-certs/ca.crt
CA によって署名されたクライアント接続用の証明書を作成します。
これらのコマンドは、秘密鍵と証明書を作成し、続いて直前の手順で作成した CA を使用して証明書に署名します。
# Create a private key. $ openssl genrsa -out client-certs/tls.key 2048 # Create a certificate signing request for the client connections $ openssl req -new -batch -subj "/CN=<client_name>" -key client-certs/tls.key -out client-certs/client-csr.pem # Sign the certificate using the CA. $ openssl x509 -req -in client-certs/client-csr.pem -CA client-certs/ca.crt -CAkey client-certs/ca-key.pem -out client-certs/tls.crt -CAcreateserial
ここで、
<client_name>
はそれぞれのルータークライアントについて一意です。直前の手順で作成した証明書を使用してクライアント証明書に署名するために使用される CA 証明書を含むシークレットを作成します。
$ oc create secret generic client-ca-secret --from-file=ca.crt=client-certs/ca.crt --from-file=tls.crt=client-certs/ca.crt --from-file=tls.key=client-certs/ca-key.pem