証明書の管理

ユーザー指定のサーバー証明書のローテーション

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 シークレットの変更を監視し、内容が変更されていることがわかると、コンポーネントをローリング再起動して新しいサーバー証明書を構成します。