vSphere Clientにログイン出来なくなった話 Part.2

お仕事関連

※この記事で紹介するのは、Machine SSL Certのアップデートについて解説します。

※この記事はあくまで参考程度の資料となります。何かあっても自己責任でお願いします。

上記の記事に書いているvSphere Clientへログインができなくなった件について、別の担当サイトでも同様の事例が起こっていました。

改めて対応しようと調査したところ、上記の記事内で紹介しているKBで実行する「Certificate Manager」が非推奨となっている状況で、非推奨な物では実行できん…という感じに。

なので、記事を新しく書いています。

今後は?

今後については、vCertを利用して証明書の再発行をしてくれ、との記事になっています。

詳しく書かれたKBは以下になります。

vCert - Scripted vCenter Expired Certificate Replacement

オンラインでできるの?

業務提供中にオンラインでできます。

証明書の期限について確認します

コマンド ラインを使用して、期限切れの vCenter Server 証明書を確認および解決する

まずは証明書の期限を確認しましょう。

この記事で紹介するのは、Machine SSL Certのアップデートについて解説します。

ターミナルソフトでvCSAサーバーへ接続する

ターミナルソフト(TeraTerm等)を使い、vCSAサーバーへログインします。

バッシュモードに移行します

shell

root@~の文字になれば良いです。

コマンドを入力し、証明書期限を確認する

for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo “[*] Store :” $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list –store $store –text | grep -ie “Alias” -ie “Not After”;done;

上記のコマンドを入力し、現在適用されている証明書の期間を確認します。

上記の「Not After」部分で今日の日付より前のものは証明書の期限が切れています。

※上記画像は対処後なので、MACHINE_SSL_CERTは更新されています。

じゃあ実際に再作成、やってみましょう

PNID、ホスト名を確認する

後々の証明書再作成時にPNIDとホスト名を入力する必要がある項目が出てくるので、事前に確認を行います。

○PNIDの確認

# /usr/lib/vmware-vmafd/bin/vmafd-cli get-pnid –server-name localhost

○ホスト名の確認

# uname -n

○IPアドレスの確認

# ifconfig

上記で調べた値をメモしておきます。

vCertをvCSAサーバーへアップロードする

vCertでのバージョンアップを行う際、vCertをvCenterサーバーへ適用する必要があります。

以下の記事の最下部に、vCertのモジュールリンクが格納されていますので、事前にダウンロードしておきます。

vCert - Scripted vCenter Expired Certificate Replacement

ターミナルソフトで、vCSAサーバーへログインします。

ログイン後、ターミナルソフトのSCP機能を利用して、vCertを/tmpフォルダにアップロードします。

TeraTermだと、ファイル⇒SSH SCPを選択して転送を行います。

上部の送信枠内について、FromにvCertのZipファイルを選択し、Toに「/tmp」フォルダを指定します。Sendボタンをクリックしてサーバーへ転送します。

この時、SCPでの転送ができない場合があります。その際は常時Bashモードで起動するように設定を行う必要があるとのことでした。(HPE担当社より)

WinSCP を使用してvCenter Server Appliance に接続すると、次のエラーで接続に失敗する:Received too large (1433299822 B) SFTP packet. Max supported packet size is 1024000 B

手順としては以下の通りです。

  1. vCenter Server Appliance への SSH 接続を開始します。
  2. プロンプトが表示されたら、root ユーザーのユーザー名とパスワードを指定します。
  3. vCenter Server 6.0 の場合は、次のコマンドを実行して Bash シェルを有効にします。vCenter Server 6.5 以降のバージョンでは実行する必要はありません。

    $ shell.set –enable True
     
  4. 次のコマンドを実行して、Bash シェルにアクセスします。

    $ shell
     
  5. Bash シェルで、次のコマンドを実行してデフォルト シェルを Bash に変更します。

    $ chsh -s /bin/bash root

この状態にした上で、もう一度SSH SCPで転送を行うと、/tmpフォルダにファイルが入ったと思います。

以下のコマンドを入力し、/tmpフォルダに移動した後、lsコマンドでファイルリストを確認します。

# cd /tmp

# ls

vCertのZipファイルを解凍する

ファイルを格納したら、次はzipファイルを解凍します。

現在は/tmpフォルダにいるので、以下のコマンドでzipファイルを解凍します。

※公開されているzipファイルが更新されている可能性があるので、正しいファイル名にして実行してください。

# unzip -q vCert-6.1.0-20250910.zip

解凍が終わったら、lsコマンドで解凍がされたかを確認します。

# ls

解凍したフォルダに移動し、vCertを実行します。

# cd vCert-6.1.0-20250910
# chmod +x vCert.py

# ./vCert.py

ここまで問題なく進むと、以下のメニュー画面が表示されます。

証明書の状況を再度確認する

このメニュー上で「1」を選択すると、現在vCSAサーバーで認識している証明書の状況を確認できます。

上記のように、Machine SSL certificateが「EXPIRED」になっている状況で、証明書の期限が切れている事が分かります。

証明書を再作成する

証明書を再作成する手順に移ります。有効期間確認後、メニュー画面に戻っていると思いますので、メニューの「3」を選択します。

Manage vCenter Certificatesメニューに変わります。

「1」を選択し、Machine SSL certificateを再作成します。

VMCA用の証明書となるので、「1」を選択します。

証明書更新に必要な情報について入力するように求められます。

入力が求められる項目の内、以下の2つについては、事前に確認しておいた値を入力する必要があります。それ以外はデフォルトのままエンターで進めて構いません。

・Enter the IP address (optional)  ⇒ vCSAサーバーのIPを入力

・Enter any additional hostname for SAN entries ⇒ PNIDを入力

※PNIDがIPアドレスだった場合、uname -nで調べたホスト名を代わりに入力

再起動する

適用が完了するとサービスを再起動するかを聞かれますので、再起動して良ければ「Y」を返します。

再起動が完了しましたら、vCSAをWebブラウザで起動し、ログインができるかを確認します。

TereTermは切断して構いません。

まとめ

vCertに変わってからの証明書再発行手順を紹介しました。

昔のマネージャ画面と比べて、作成手順が少し簡易的になった気がしています。

参考になるかは分かりませんが、この記事が参考になれば幸いです。

コメント

タイトルとURLをコピーしました