11.3.3. CA 証明書の手動更新
クラスターおよびクライアント CA 証明書は、それぞれの証明書の更新期間の開始時に自動更新されます。Kafka.spec.clusterCa.generateCertificateAuthority
および Kafka.spec.clientsCa.generateCertificateAuthority
が false
に設定されている場合、CA 証明書は自動更新されません。
証明書の更新期間が始まる前に、これらの証明書のいずれかまたは両方を手動で更新できます。セキュリティー上の理由や、証明書の更新または有効期間を変更した 場合などに、自動更新を行うことがあります。
更新された証明書は、更新前の証明書と同じ秘密鍵を使用します。
前提条件
- Cluster Operator が稼働している必要があります。
- CA 証明書と秘密鍵がインストールされている Kafka クラスターが必要です。
手順
strimzi.io/force-renew
アノテーションを、更新対象の CA 証明書が含まれるSecret
に適用します。表11.8 証明書の更新を強制する Secret のアノテーション。 証明書 Secret annotate コマンド クラスター CA
KAFKA-CLUSTER-NAME-cluster-ca-cert
oc annotate secret KAFKA-CLUSTER-NAME-cluster-ca-cert strimzi.io/force-renew=true
クライアント CA
KAFKA-CLUSTER-NAME-clients-ca-cert
oc annotate secret KAFKA-CLUSTER-NAME-clients-ca-cert strimzi.io/force-renew=true
次回の調整で、アノテーションを付けた
Secret
の新規 CA 証明書が Cluster Operator によって生成されます。メンテナンス時間枠が設定されている場合、Cluster Operator によって、最初の調整時に次のメンテナンス時間枠内で新規 CA 証明書が生成されます。Cluster Operator によって更新されたクラスターおよびクライアント CA 証明書をクライアントアプリケーションがリロードする必要があります。
CA 証明書が有効である期間を確認します。
たとえば、
openssl
コマンドを使用します。oc get secret CA-CERTIFICATE-SECRET -o 'jsonpath={.data.CA-CERTIFICATE}' | base64 -d | openssl x509 -subject -issuer -startdate -enddate -noout
CA-CERTIFICATE-SECRETは
Secret
の名前で、クラスタCA証明書の場合はKAFKA-CLUSTER-NAME-cluster-ca-cert
であり、クライアントCA証明書の場合はKAFKA-CLUSTER-NAME-clients-ca-cert
となります。CA-CERTIFICATEは、
jsonpath={.data.ca\.crt}
のように、CA証明書の名前です。このコマンドは、CA 証明書の有効期間である
notBefore
およびnotAfter
の日付を返します。たとえば、クラスター CA 証明書の場合は以下のようになります。
subject=O = io.strimzi, CN = cluster-ca v0 issuer=O = io.strimzi, CN = cluster-ca v0 notBefore=Jun 30 09:43:54 2020 GMT notAfter=Jun 30 09:43:54 2021 GMT
Secret から古い証明書を削除します。
コンポーネントで新しい証明書が使用される場合でも、古い証明書がアクティブであることがあります。古い証明書を削除して、潜在的なセキュリティーリスクを取り除きます。