第1章 カスタム証明書の追加
Red Hat Advanced Cluster Security for Kubernetes でカスタム TLS 証明書を使用する方法を学びます。証明書を設定した後、ユーザーと API クライアントは、セントラルに接続するときに証明書のセキュリティー警告をバイパスする必要はありません。
1.1. カスタムセキュリティー証明書の追加 リンクのコピーリンクがクリップボードにコピーされました!
インストール中、または既存の Red Hat Advanced Cluster Security for Kubernetes デプロイメントにセキュリティー証明書を適用できます。
1.1.1. カスタム証明書を追加するための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- PEM でエンコードされた秘密鍵と証明書ファイルがすでに存在する必要がある。
証明書ファイルは、人間が読める形式のブロックで開始および終了する必要がある。以下に例を示します。
-----BEGIN CERTIFICATE----- MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= -----END CERTIFICATE-----証明書ファイルには、単一の (リーフ) 証明書または証明書チェーンのいずれかを含めることができる。
警告- 証明書が信頼されたルートによって直接署名されていない場合は、中間証明書を含む完全な証明書チェーンを提供する必要がある。
- チェーン内のすべての証明書は、リーフ証明書がチェーンの最初でルート証明書がチェーンの最後になるように順序付けられている必要がある。
- グローバルに信頼されていないカスタム証明書を使用している場合は、カスタム証明書を信頼するようにセンサーを設定する必要もある。
1.1.2. 新規インストール中のカスタム証明書の追加 リンクのコピーリンクがクリップボードにコピーされました!
手順
Helm を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールする場合:
カスタム証明書とそのキーを
values-private.yamlファイルに追加します。central: # Configure a default TLS certificate (public cert + private key) for central defaultTLS: cert: | -----BEGIN CERTIFICATE----- EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... -----END CERTIFICATE----- key: | -----BEGIN EC PRIVATE KEY----- EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= ... -----END EC PRIVATE KEY-----インストール中に設定ファイルを提供します。
$ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
roxctlCLI を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールする場合は、インストーラーの実行時に証明書とキーファイルを提供します。非対話型インストーラーの場合は、
--default-tls-certおよび--default-tls-keyオプションを使用します。$ roxctl central generate --default-tls-cert "cert.pem" --default-tls-key "key.pem"対話型インストーラーの場合、プロンプトの回答を入力するときに証明書とキーファイルを提供します。
... Enter PEM cert bundle file (optional): <cert.pem> Enter PEM private key file (optional): <key.pem> Enter administrator password (default: autogenerated): Enter orchestrator (k8s, openshift): openshift ...
1.1.3. 既存のインスタンスのカスタム証明書の追加 リンクのコピーリンクがクリップボードにコピーされました!
手順
Helm を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールした場合:
カスタム証明書とそのキーを
values-private.yamlファイルに追加します。central: # Configure a default TLS certificate (public cert + private key) for central defaultTLS: cert: | -----BEGIN CERTIFICATE----- EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... -----END CERTIFICATE----- key: | -----BEGIN EC PRIVATE KEY----- EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= ... -----END EC PRIVATE KEY-----helm upgradeコマンドを使用して、更新された設定ファイルを提供します。$ helm upgrade -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
roxctlCLI を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールした場合。PEM でエンコードされたキーと証明書ファイルから TLS シークレットを作成して適用します。
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -このコマンドを実行すると、セントラルは Pod を再起動しなくても、新しいキーと証明書を自動的に適用します。変更が反映されるまでに最大 1 分かかる場合があります。
1.1.4. 既存のインスタンスのカスタム証明書の更新 リンクのコピーリンクがクリップボードにコピーされました!
セントラルのカスタム証明書を使用する場合は、次の手順を実行して証明書を更新できます。
手順
既存のカスタム証明書のシークレットを削除します。
$ oc delete secret central-default-tls-cert新規シークレットを作成します。
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -- セントラルコンテナーを再起動します。
1.1.4.1. セントラルコンテナーの再起動 リンクのコピーリンクがクリップボードにコピーされました!
セントラルコンテナーを強制終了するか、セントラル Pod を削除することで、セントラルコンテナーを再起動できます。
手順
次のコマンドを実行して、セントラルコンテナーを強制終了します。
注記OpenShift Container Platform が変更を伝播し、セントラルコンテナーを再始動するまで、少なくとも 1 分間待機する必要があります。
$ oc -n stackrox exec deploy/central -c central -- kill 1または、次のコマンドを実行して セントラル Pod を削除します。
$ oc -n stackrox delete pod -lapp=central