免責事項: これは英文の記事「Manual method to replace the self-signed vip.crt certificate in vSphere with Tanzu」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
1. /etc/vmware/wcp/tls/vip.crt 証明書が期限切れと表示され、Supervisor Cluster API エンドポイントに接続できない。
2. vSphere Client で ワークロード管理 > スーパーバイザー > "スーパーバイザー名" > 構成 > 証明書 にて「ワークロード プラットフォームの管理」の証明書有効期限が切れている。
3. スーパーバイザーにログインしようとすると、次のエラーが表示される。
Get "https://##.##.##.##:443/api/v1/namespaces/kube-public/configmaps/pinniped-info": tls: failed to verify certificate: x509: certificate is valid for ###.###.###.###, not ##.##.##.##
4. “echo | openssl s_client -showcerts -connect <SUPERVISOR_IP>:443 2>/dev/null | openssl x509 -noout -text “ を使用して証明書を確認すると、 SAN に古いスーパーバイザーが登録されている。
/etc/vmware/wcp/tls/vip.crt にある自己署名証明書の有効期限が切れており、自動更新プロセスが開始されていない。
この TLS 証明書は nginx プロキシによって提供され、ワークロードネットワーク上の各 CP VM の前段で動作します。有効期間は 1 年間です。wcpsvc が有効期間の 50%(つまり 6 ヶ月)を超えたことを検知すると、vip.crt の自己署名証明書が自動的に更新されるようになっています。
1. スーパーバイザーノードのコントロールプレーン VM から vip.crt を確認する
TLS エンドポイント証明書の有効期限を確認する
# find / -type f \( -name "*.cert" -o -name "*.crt" \) -print 2>/dev/null | egrep -v 'ca.crt$|ca-bundle.crt$|kubelet\/pods|var\/lib\/containerd|run\/containerd' | xargs -L 1 -t -i bash -c 'openssl x509 -noout -text -in {}|grep After'
bash -c openssl x509 -noout -text -in /etc/vmware/wcp/tls/vip.crt|grep AfterNot After : Dec 13 03:59:22 2xxx GMT
# openssl x509 -in /etc/vmware/wcp/tls/vip.crt -text | grep CN
Issuer: CN=CA, DC=vsphere, DC=local, C=US, ST=California, O=vcxxxx.corp.example.org, OU=VMware EngineeringSubject: OU=vcxxxx.corp.example.org, CN=kube-apiserver-domain-c7
2. vCenter Server で新しい vip.crt ファイルを生成する
# vi cert.csr
# /usr/lib/vmware-vmca/bin/certool --gencertfromcsr --csrfile cert.csr --cert vip-renew.crt
3. Replace VIP certificate from vCenter Server GUI
# cat vip-renew.crt
vip.crt にカスタム署名付き証明書が使用されている場合で、以下のドキュメントに従って更新を行うには、その証明書が CA によって署名されている必要があります。