You are viewing documentation for a release that is no longer maintained. To view the documentation for the most recent version, see the latest RHACS docs.
第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
roxctl
CLI を使用して 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
roxctl
CLI を使用して 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