証明書の管理¶
ユーザー指定のサーバー証明書のローテーション¶
Kubernetes シークレットとして与えられたユーザー指定の証明書を使用している場合、Kubernetes シークレットの内容をアップデートすることでサーバー証明書をローテーションすることができます。
たとえば .pem
ファイルを使用して証明書を指定した場合、server.pem
証明書と server-key.pem
証明書のプライベートキーをアップデートして Kubernetes シークレットをアップデートします。
kubectl create secret generic component-tls \
--from-file=fullchain.pem=server.pem \
--from-file=cacerts.pem=ca.pem \
--from-file=privkey.pem=server-key.pem \
--save-config --dry-run=client -oyaml | \
kubectl apply -f -
CFK は Kubernetes シークレットの変更を監視し、内容が変更されていることがわかると、コンポーネントをローリング再起動して新しいサーバー証明書を構成します。
認証機関のローテーション¶
Kubernetes シークレットとして与えられたユーザー指定の証明書を使用している場合、使用されている認証機関を 2 段階のプロセスでローテーションすることができます。
このセクションでは、.pem
ファイルを使用して証明書が指定されたと想定しています。
1.新しい認証機関の追加
ca.pem に新しい中間 CA またはルート CA を追加します。この CA は以前の中間 CA またはルート CA と共存することになります。
file name: ca.pem
content:
-----BEGIN CERTIFICATE-----
<old root CA certificate>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<new root CA certificate>
-----END CERTIFICATE-----
シークレットをアップデートします。
kubectl create secret generic component-tls \
--from-file=fullchain.pem=server.pem \
--from-file=cacerts.pem=ca.pem \
--from-file=privkey.pem=server-key.pem \
--save-config --dry-run=client -oyaml | \
kubectl apply -f -
CFK は Kubernetes シークレットの変更を監視し、内容が変更されていることがわかると、コンポーネントをローリング再起動して、使用するルート CA と以前のルート CA を構成します。
2.新しい認証機関でのサーバー証明書の生成
新しい CA で新しいサーバー証明書を生成し、server.pem
証明書と server-key.pem
証明書のプライベートキーを差し替えます。
その後、Kubernetes シークレットをアップデートします。
kubectl create secret generic component-tls \
--from-file=fullchain.pem=server.pem \
--from-file=cacerts.pem=ca.pem \
--from-file=privkey.pem=server-key.pem \
--save-config --dry-run=client -oyaml | \
kubectl apply -f -
CFK は Kubernetes シークレットの変更を監視し、内容が変更されていることがわかると、コンポーネントをローリング再起動して新しいサーバー証明書を構成します。