対象バージョン: VMware vCenter Server Appliance (VCSA)
症状: ブラウザで vSphere Client にアクセスすると no healthy upstream と表示され、操作不能になる
症状
ブラウザから vCenter の URL にアクセスすると、vSphere Client の画面が表示されず、以下のメッセージだけが出る。
no healthy upstream
SSH や DCUI(コンソール)からは接続できるが、GUI での管理が一切できない状態。
原因
今回の原因は Machine SSL 証明書の期限切れ でした。
vCenter 内部では envoy というリバースプロキシが各サービスへのリクエストを仲介しています。この証明書が失効すると、vpxd(vCenter のコアサービス)が起動時にクラッシュし、バックエンドに健全なサービスが存在しない状態となって no healthy upstream エラーが発生します。
証明書の期限を確認する方法
VCSA に SSH 接続し、Bash シェルで以下を実行します。
for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do
echo "=== $store ==="
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -i "not after"
done
以下のように MACHINE_SSL_CERT の Not After が過去の日付になっていれば、証明書期限切れが原因です。
=== MACHINE_SSL_CERT ===
Not After : Mar 28 04:26:54 2025 GMT ← 期限切れ!
=== TRUSTED_ROOTS ===
Not After : Mar 22 16:26:53 2033 GMT
...
注意: DCUI のメニュー画面では
forやechoなどのシェルコマンドは使えません。shellコマンドで Bash に切り替えるか、SSH で接続して実行してください。
対処法:certificate-manager で証明書を再生成する
ステップ 1: certificate-manager を起動
/usr/lib/vmware-vmca/bin/certificate-manager
ステップ 2: メニューで「4」を選択
1. Replace Machine SSL certificate with Custom Certificate
2. Add VMCA Root Certificate to Certificate Store and replace all Certificates
3. Replace Machine SSL certificate with VMCA Certificate
4. Regenerate a new VMCA Root Certificate and replace all certificates ← これを選択
5. Replace Solution user certificates with Custom Certificate
...
オプション 4 を選ぶと、VMCA ルート証明書を再生成してすべての証明書を一括更新できます。
ステップ 3: 必要情報を入力
対話形式でいくつかの情報を入力します。
| 項目 | 入力例 |
|---|---|
| Country | JP |
| Organization | 任意の会社名っぽいものを入力でもOK |
| State | Tokyo(とか入力) |
| Locality | Shinjuku(とか入力) |
| IPAddress | vCenter の IP アドレス |
| Hostname | vCenter の FQDN(例: vcenter.example.com) |
Hostname には DNS で解決できる FQDN を入力してください。IP アドレスではなく FQDN を推奨します。
ステップ 4: 完了後にサービスを再起動
certificate-manager が自動でサービスを再起動します。自動で完了しない場合は手動で実行してください。
service-control --stop --all
service-control --start --all
しばらく待ってからブラウザで vSphere Client にアクセスし、正常に表示されれば復旧完了です。
注意事項
- ESXi ホストの再接続: 証明書更新後、管理下の ESXi ホストが切断状態になる場合があります。vCenter 復旧後に手動での再接続が必要なケースがあります。
- 事前スナップショット: 作業前に VCSA のスナップショットを取得しておくと、万が一の際に安全です。
- 定期的な証明書監視: デフォルトの VMCA 証明書の有効期間は 2 年 です。期限切れを防ぐため、定期的な確認を推奨します。
まとめ
| 項目 | 内容 |
|---|---|
| エラーメッセージ | no healthy upstream |
| 主な原因 | Machine SSL 証明書の期限切れによる vpxd クラッシュ |
| 確認方法 |
vecs-cli で証明書の Not After を確認 |
| 対処法 |
certificate-manager のオプション 4 で証明書を一括再生成 |
no healthy upstream は一見するとネットワーク障害のように見えますが、証明書の期限切れが原因であることも多いです。まずは証明書の有効期限を確認することをおすすめします。