仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

VMware vCenter Certificate Automation Tool による SSL 証明書の更新方法

f:id:ogawad:20190203195705p:plain:right

vCenter Server は vCenter 通信や SDK 拡張など、内部通信にも SSL が使われますが、少し特殊な自己署名証明書のため「信頼されたルート証明機関」を使ったエラー回避が簡単にできません。


このまま運用もできるのですが、IE のバージョンやセキュリティ設定によっては vSphere Client の「パフォーマンス」や「ハードウェアステータス」画面が表示されなかったり、Web Client の動きが怪しいなどを耳にします。トラブルを引かないためにも、最低限 ADCS で CA 署名された証明署にしておきたいところ です。


しかし、Linux Appliance 版は良いのですが、Windows 版は更新作業がしんどい。
特に SSO や Inventory Service などコンポーネント分離した vCenter 5.1 からは、使い慣れない Java SSL コマンドで 18 ヶ所もの更新を行わなければならないなど、鬼のような作業になっています。


詳細は KB 2034833 をご確認ください。
1. Single Sign OnUpdate the Single Sign On SSL certificate.
2. Inventory ServiceUpdate Inventory Service trust to Single Sign On.
3. Inventory ServiceUpdate the Inventory Service SSL certificate.
4. vCenter ServerUpdate vCenter Server trust to Single Sign On.
5. vCenter ServerUpdate the vCenter Server SSL certificate.
6. vCenter ServerUpdate vCenter Server trust to Inventory Service.
7. Inventory ServiceUpdate the Inventory Service trust to vCenter Server.
8. vCenter OrchestratorUpdate vCenter Orchestrator trust to Single Sign On.
9. vCenter OrchestratorUpdate vCenter Orchestrator trust to vCenter Server.
10.vCenter OrchestratorUpdate the vCenter Orchestrator SSL certificate.
11.vSphere Web ClientUpdate vSphere Web Client trust to Single Sign On.
12.vSphere Web ClientUpdate vSphere Web Client trust to Inventory Service.
13.vSphere Web ClientUpdate vSphere Web Client trust to vCenter Server.
14.vSphere Web ClientUpdate the vSphere Web Client SSL certificate.
15.Log BrowserUpdate the Log Browser trust to Single Sign On.
16.Log BrowserUpdate the Log Browser SSL certificate.
17.Update ManagerUpdate the vSphere Update Manager SSL certificate.
18.Update ManagerUpdate the vSphere Update Manager trust to vCenter Server.

さすがにクレームが多かった?のか、VMware 社自身から SSL 証明書らくらく更新ツール「vCenter Certificate Automation Tool」がリリースされました。
基本的には下記の KB のとおりに進めていくだけなのですが、あまりの簡単さに感動したのと、昨日リリースされた vCenter 5.1 U1a など今後は需要があると思いますので、要所要所のポイントを書き留めておきたいと思います。

VMware Download: vCenter Certificate Automation Tool
https://my.vmware.com/jp/group/vmware/details?downloadGroup=SSL-TOOL-101&productId=327
VMware KB 2041600: Deploying and using the SSL Certificate Automation Tool
http://kb.vmware.com/kb/2041600


KB にあるとおり、おおまかな手順は下記のとおりです。

  1. CA への申請ファイル (CSR) を生成する
  2. CA に署名してもらう
  3. SSL 証明書を差し替え、信頼関係を結び直す

1. CA への申請ファイル (CSR) を作成する

以前のバージョンでは、CSR 申請ファイルを生成する機能が無かったそうです。
PKI に詳しくない方はこの作業自体が「??」だと思うので、自動生成機能のついたバージョン 1.0.1 は本当に素晴らしいと思います。

ダウンロードしたツールキットの解凍先は C ルート直下がお勧めです。
OpenSSL はツールに同梱されているので別途用意する必要はありません。


環境変数ファイル ssl-environment.bat を開き、REQUIRED 項目を編集します。
(但し、chain/key 各ファイルのパス指定は実は意味ないような気がします...)

特に、268 行目の「sso_admin_user」にご注意ください。例文で Domain の綴りが誤っているのもありますが、そもそも Windows 版の SSO 管理者名は admin@System-Domain が既定値です。

rem #      sso_admin_user=System-Doman\administrator
set sso_admin_user=admin@System-Domain


環境ファイルを埋めたたら、実行スクリプト ssl-updater.bat を起動します。


メニュー 2 を選択し、各コンポーネントごとに申請ファイル (*.csr) を生成すると、requests フォルダが次のようになります。


2. CA に署名してもらう

ここでは Windows の ADCS を例に説明します。
証明書 Web サービスにアクセスし、申請ファイル内の Base 64 テキストをコピペ、Web サーバーテンプレートで申請してください。CA 署名証明書は Base 64 のチェーン無しでダウンロードします。名前はいずれも rui.crt にしておきましょう。


続けて、CA 証明書のチェーンを Base 64 でダウンロードします(左)
出力されるチェーン証明書は PKCS#7 という MS フォーマットですので、Java SSL で読める X.509 への変換が必要です。「certnew.p7b」を開いて、X.509 Base 64 (*.cer) でエクスポートしてください(右)
  
(クリックすると拡大します)


CA 署名証明書と CA チェーン証明書を 1 つのチェーン証明書にします。
次のようなコマンドで2つのテキストファイルをコンカチし、crt ファイルと同じフォルダに戻してください。(実は変数ファイルで指定したパスでなくて良いようです)

> copy /a rui.crt+C:\Root64.cer chain.pem

3. SSL 証明書を差し替え、信頼関係を結び直す

※ vCenter マシンのシステムバックアップを取っておくことを強くお勧めします


ssl-updater.bat を再度実行し、メニュー 1 (Update Steps Planner) を選びます。
Update Steps Planner は各コンポーネントをどの順番で差し替えていけばよいか、信頼関係を結びなおせばよいかを教えてくれるものです。
SSL 証明書の差し替えはサービス再起動を伴います。信頼関係が取れていない場合はサービスを起動できなくなってしまうので、この順番はとても重要です。


インストールされていれるコンポーネントを選択します。すべて入れている場合は 8 (All) です。画面が流れてしまった場合は logs フォルダを漁ってください。


実行順番が判明したら、メインメニューから 3 を選びます。
あとは Update Steps Planner で指示された順番で処理していけば完了です。

なお、各処理とも正常終了すると
「completed successfully」「Go to the next step」と出力されるようです。


指示された手順すべてが正常終了したら、vCenter や Web Client あたりに HTTPS 接続してみてください。証明書エラーは出ないと思います。



このらくらくツールの素晴しいところは「CSR 生成機能」と、どのようなインストール構成でも手順化してくれる「Update Steps Planner」にあると思います。
vCenter の各コンポーネントSSL 信頼関係まで把握しているなんて、おそらく開発者だけなので。(手動で更新していた時は、何回壊してしまったことか...)