どうも、Tです。
先日、vcsa周りの証明書を確認しました。
今回は、ESXiホスト証明書が切れるとどうなるか確認していきます。
ここでの結論
個人的には、vcsa周りのVMCA関連の証明書ほど、神経質似ならなくて大丈夫かなという感じです。
- ESXiホスト証明書切れ2か月前には、ESXiホスト証明書ステータスエラーが表示される
- ESXiホスト証明書ステータスエラーが出たら証明書の更新をすると新しい証明書がプロビジョニングされる
- ESXiホストの証明書期限を過ぎた場合は、vCenterから切断→接続する新しい証明書がプロビジョニングされる
- ESXiホスト証明書切れ8か月前のESXiホスト証明書ステータス(黄色?)は確認できなかった。ドキュメントの誤記っぽい。
- ESXiホストの証明書期限を過ぎても、ざっと見た感じ機能的制約やトラブルはなかった。
やりたいこと
ESXiホスト証明書も定義済みアラームがあり、こちらがちゃんとでるか確認します。
証明書が [間もなく期限切れ] 状態(8 か月未満)になっている場合は、黄色のアラームが表示されます。証明書が [期限切れ間近] 状態(2 か月未満)になっている場合は、赤のアラームが表示されます。
アラーム定義を見てる感じは、黄色アラームでなさそうなんですがね・・・・
また、期限が切れたときにどうなるかと回復方法についても確認します。
環境
ESXiホスト証明書で確認した環境を使います。
- vCenterServer:7.0.2 17958471
- vSphere ESXi: 7.0.2 17867351
ESXiホスト証明書とvcsa周りの証明書の有効期限はおおむね下記の状態からスタートします。
- ESXiホストの証明書期限:2026年8月
- vcsaのマシンSSL証明書:2023年8月
- vcsaのソリューションユーザー証明書(wcp):2023年8月
- vcsaのソリューションユーザー証明書(wcp以外):2031年8月
ESXiホスト証明書
vcsa周りの証明書(VMCA)
for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done
検証方法
下記の順番で進めていきます。
パターンとしては、vcsa周りの証明書は更新し続けてたけど、ESXiホストの証明書更新をすっかり忘れていたという、現実にはありえなさそうな想定です。
- 2023年8月1日:vcsaの証明書期限延長
- 2025年7月1日:vcsaの証明書期限延長
- 2026年3月1日:ESXiホストの証明書期限8か月未満(黄色アラーム)
- 2026年8月1日:ESXiホストの証明書期限2か月未満(赤い色アラーム)
- 2026年9月1日:ESXiホストの証明書期限切れたタイミング
vcsaの証明書期限延長方法
vcsa周りの証明書期限は、certificate-managerのオプション8を利用します。
実施方法は、本ページには記載しないため上記をご参照ください。なお、更新後のBACKUP_STOREにある証明書は手動で削除します。
certificate-managerのオプション8を使用するとソリューションユーザー証明書期限も2年に置き換わってしまうので、ESXiホスト証明書が切れるまでの2回実施します。
留意点
検証方法の順番を行う際に、未来時刻への変更が必要になります。そのため、順番の間には、検証環境をシャットダウン→起動して未来時刻へ合わせます。
本番環境では、継続して稼働している最中に証明書の有効期限が過ぎるので確認できる事象が異なる可能性があるためご留意ください。
2023年8月1日:vcsaの証明書期限延長
検証環境を2023年8月1日に変更して、certificate-managerのオプション8を実行した後の状態です。
vcsa周りの証明書(VMCA)
延長後のvcsa周りの証明です。BACKUP_STOREの証明書は削除済みです。
for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done
ESXiホスト証明書
ESXiホスト証明書は変わりありません。
2025年7月1日:vcsaの証明書期限延長
検証環境を2025年8月1日に変更して、certificate-managerのオプション8を実行した後の状態です。
vcsa周りの証明書(VMCA)
延長後のvcsa周りの証明です。BACKUP_STOREの証明書は削除済みです。
for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done
ESXiホスト証明書
ESXiホスト証明書は変わりありません。
2026年3月1日:ESXiホストの証明書期限8か月未満(黄色アラート)
ESXiホスト証明書の有効期限の約5か月ほど前の状態で起動しました。
vCenter健全性のアラートは上がってますが、証明書に関するものはありません
健全性アラートも証明とは別問題のようです。
vCenterオブジェクトのサマリも綺麗なもんです。
ホストのサマリも綺麗です。
8か月の黄色アラートが出るというのは、アラーム定義を見ている限りもドキュメントの誤記のような気がしてなりません・・・。
2026年8月1日:ESXiホストの証明書期限2か月未満(赤色アラート)
ESXiホスト証明書の有効期限の1か月未満の状態で起動しました。
ESXiホスト証明書ステータスの赤色アラートが発生しました。ドキュメント通りです。
2026年9月1日:ESXiホストの証明書期限切れたタイミング
vSphere Clientから見ると「ESXiホスト証明書ステータス」が表示されたままです。
Host Clientから見ると「このホストに割り当てられた証明書の期限が切れています。 有効な証明書をインストールする必要があります。」が表示されました。
vSphere Clientから証明書の有効期限を確認するとなぜか、ホスト2台だけなぜか空白に・・・。
Host Clientから見ると日付自体は入っているので、vCenter側でうまく読込が行えてないだけっぽい?
ESXiホスト証明書が切れいている状態でも、vCLSの展開・仮想マシンのパワーオン・仮想コンソールなどは利用できました。一見したところ機能的影響はなさそうです。
ESXiホストの証明書を期限切れから直す(切断&再接続)
ESXiホスト証明書が期限切れになっている場合は、切断して再接続する必要があるとのことです。
証明書は、期限が近づいている場合、またはそれ以外の理由で新規証明書を使用してホストをプロビジョニングする必要がある場合に、更新することができます。証明書がすでに期限切れになっている場合は、ホストをいったん切断して再接続する必要があります。
「ホストを右クリック」->「接続」->「切断」をクリックします。
「OK」をクリックします。
切断状態になりました。
「ホストを右クリック」->「接続」->「接続」をクリックします。
「OK」をクリックします。
接続完了したのち、「ホスト」->「設定」->「証明書」画面を見ると有効期限が伸びています。接続した時間-24時間から5年間有効になります。
ESXiホストの証明書を期限切れから直す(更新)
なお、証明書が切れる前の延長方法として、更新で行える記載がありましたが証明書が切れている状態からでもこれで直りました。
「ホスト」->「設定」->「証明書」->「更新」をクリックします。
「はい」をクリックします。
接続完了したのち、「ホスト」->「設定」->「証明書」画面を見ると有効期限が伸びています。更新した時間-24時間から5年間有効になります。
2台更新をやったうち、1台は一時的に切断状態になってしまう事象があったので、切断される前提で計画実施したほうがよさそうです。
vCenterのないスタンドアローンのESXiホストの場合は?
検証して気になったのは、vCenterがないスタンドアローンESXiの場合どうするの?ということでした。vCenterがないのでVMCAもないし、インストール時の証明書は2年で終わります。
最近ではvCenterがない環境というのも、かなり稀なので検証まではしませんが、調べたところESXi単体で証明書を期限を延ばす方法が見つかりませんでした。
あるとすれば、外部CAを使って証明書を長いものに入れ替えるくらいかなと・・・・。
しかしながら、証明書切れでも機能的制約はなさそうなので、そこまでシビアにならなくてもいい?&ESXiスタンドアローンならあっても開発用途なきがするので、その時考えればいいか!の結論になりました。
まとめ
VMCA周りとESXi証明書は分かったので、次は外部CAやりますか・・・・。うーん、証明書めんどくさい(´・ω・`)