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

お仕事関連

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

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

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

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

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

今後は?

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

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

vCert - Scripted vCenter expired certificate replacement
vCert - Scripted vCenter expired certificate replacement

オンラインでできるの?

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

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

コマンド ラインを使用して、期限切れの vCenter Server 証明書を確認および解決する
コマンド ラインを使用して、期限切れの 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
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
WinSCP を使用してvCenter Server Appliance に接続すると、次のエラーで接続に失敗する:Received too large (1433299822 B) SFTP packet. Max supported p...

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

  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をコピーしました