KubernetesでLet's EncryptのTLSサーバー証明書を手動更新する

気づいたらTLSサーバー証明書の有効期限が切れていた!なんて想像もしたくない話ですが、実際に起こってしまい、今回は軽減策として手動で更新しました。もしまた起こった時のためにも、手動でやったことを備忘録として残しておきます。

ちなみにcert-managerで自動更新設定したはずが、どうも動いてませんでした。。これは別途見直すとします👼

 

1.certbotで証明書を発行する

$ certbot certonly --manual --cert-name yopiilab.com -d yopiilab.com -d *.yopiilab.com --preferred-challenges dns --test-cert

チャレンジはDNSで行っているため--preferred-challenges dnsをつけています。

テスト後は--test-certを外せます。

SSL Server Test (Powered by Qualys SSL Labs)

Let's Encryptは証明書の発行にレート制限があるようなので、--dry-runまたは--test-certでのテストをしっかり行ってから、実際の取得が推奨されています。

 

2. 1.がうまくいったら保存先ディレクトリに移動しておく

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/yopiilab.com-0005/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/yopiilab.com-0005/privkey.pem
This certificate expires on 2022-04-08.
These files will be updated when the certificate renews.

$ cd /etc/letsencrypt/live/yopiilab.com-0005

3.tlsのsecretを削除する

$ kubectl delete secret yopiilab-tls -n=aichutower

どっちみち期限切れなのでいったん削除しました

 

4.新しいtlsのsecretを作成する

$ kubectl create secret tls yopiilab-tls --cert=fullchain.pem --key=privkey.pem -n=aichutower

 

その後、割とすぐ反映されました!

 

環境

f:id:yopiilab:20220109081946p:plain