vCert - スクリプトによる vCenter の期限切れ証明書の置き換え
search cancel

vCert - スクリプトによる vCenter の期限切れ証明書の置き換え

book

Article ID: 432356

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

免責事項:これは英文の記事 「vCert - Scripted vCenter expired certificate replacement」の日本語訳です。
記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。
最新情報は英語版の記事で参照してください。


vCert.py は、vCenter バージョン 7.0 から 9.0 における証明書関連のほとんどの操作を管理するための、メニュー駆動型のツールです。

Environment

VMware vCenter Server 9.0
VMware vCenter Server 8.0
VMware vCenter Server 7.0

Cause

vCertスクリプトの目的は、vCenter Server内の証明書の有効期限が切れた場合に、シームレスな置き換えを可能にすることです。 

Resolution

 

インストール

このツールは、英語版の記事からダウンロードして vCenter Server にアップロードできます。
スクリプトは、スクリプトがロードされたディレクトリで以下のコマンドを実行することで実行できます。

# unzip -q vCert-6.1.1-20260401.zip
# cd vCert-6.1.1-20260401
# chmod +x vCert.py
# ./vCert.py

スクリプトの実行

vCert.pyでは以下のオプションが利用可能です。

# ./vCert.py --help unzip
usage: vCert.py [-h] [--version] [--env ENVIRONMENT] [--run OPERATION] [--user USER] [--password PASSWORD]
 
VCF/VVF Certificate Management Utility (version 6.1.1)
 
optional arguments:
  -h, --help           show this help message and exit
  --version            show program's version number and exit
  --env ENVIRONMENT    Config file for environment variables
  --run OPERATION      Run specific operation directly instead of showing menu
  --user USER          Specify an SSO administrator account
  --password PASSWORD  Password for the specified SSO administrator account


# ./vCert.py
 
------------------------!!! Attention !!!------------------------
 
This script is intended to be used at the direction of Broadcom Global Support.
 
Changes made could render this system inoperable. Please ensure you have a valid
VAMI-based backup or offline snapshots of ALL vCenter/PSC nodes in the SSO domain
before continuing. See VMware vCenter in Enhanced Linked Mode pre-changes snapshot (online or offline) best practice

 
Do you acknowledge the risks and wish to continue? [y/n]: y
 
 
VCF/VVF Certificate Management Utility (version 6.1.1)
-----------------------------------------------------------------
 1. Check current certificate status
 2. View certificate info
 3. Manage certificates
 4. Manage SSL trust anchors
 5. Check configurations
 6. Reset all certificates with VMCA-signed certificates
 7. ESXi certificate operations
 8. Restart services
 9. Generate certificate report
 E. Exit

スクリプトは /var/log/vmware/vCert ディレクトリに vCert.log(サポートバンドルに含まれます)と、/root/vCert-master に YYYYMMDD ディレクトリを作成します。
これには、ステージング、バックアップなどのための複数のサブディレクトリが含まれます。
証明書のバックアップファイルを除き、一時ファイルは vCert ツールが終了すると削除されます。

メニューオプション

1. 現在の証明書のステータスを確認する

vCenter Server の証明書健全性チェックには、以下の内容が含まれます。

  • 期限切れの場合
  • 有効期限が30日以内の場合
  • PNIDがサブジェクト代替名フィールドが存在する場合(マシンSSL)
  • キー使用値がサポートされている場合(マシンSSLおよびソリューションユーザー)
  • 証明書にサブジェクト代替名フィールドのエントリが含まれている場合(マシン SSL およびソリューション ユーザー)
  • 証明書が推奨されるキー使用値を使用するように構成されている場合(マシンSSL、ソリューションユーザー、STS署名証明書)
  • CA 証明書に Subject Key Identifier 拡張機能がある場合
  • 複数の CA 証明書が同じサブジェクト文字列を持っている場合(VMwareディレクトリ内のCA証明書とVECSのTRUSTED_ROOTSストア内のCA証明書)
  • 証明書が CA 証明書でない場合 (VMware Directory 内の CA 証明書、および VECS の TRUSTED_ROOTS ストア)
  • 証明書チェーンに CA 証明書が欠落している場合
  • 証明書に無効なエイリアス (VECS の TRUSTED_ROOTS ストア) が含まれている場合
  • 証明書がサポートされていない署名アルゴリズム(md2WithRSAEncryption、md5WithRSAEncryption、RSASSA-PSS、dsaWithSHA1、ecdsa_with_SHA1、およびsha1WithRSAEncryption)のいずれかを使用している場合
  • VECS のソリューション ユーザーの証明書が VMware Directory のサービス プリンシパル エントリの証明書と一致する場合
  • 署名CAが親CAのパス長制限に違反しているために証明書が無効になる場合(マシンSSL、ソリューションユーザー、VMwareディレクトリ内のCA証明書、VECSのTRUSTED_ROOTSストア)

2. 証明書情報の表示

以下の各証明書について、人間が読める形式の情報を出力します。

View vCenter Certificates
-----------------------------------------------------------------
 1. Machine SSL certificate
 2. Solution User certificates
 3. CA certificates in VMware Directory
 4. CA certificates in VECS
 5. SMS certificates
 6. Data Encipherment certificate
 7. vCenter Extension thumbprints
 8. STS signing certificates
 9. VMCA certificate
10. Smart Card CA certificates
11. LDAPS Identity Source certificates
  • スマートカード情報の表示オプション10は、vCenter Server 9.0以降ではサポートされていません。詳細については、vSphere 製品サポートノートを参照してください。 
  • オプション1、2、6、9を選択すると、証明書の人間が読める情報とが表示されます。
  • オプション3、4、5、10、11を選択すると、基本情報(件名、発行者、有効期限、サムプリントなど)の一覧が表示され、一覧から選択して証明書の人間が読める情報とSHA1サムプリントを表示できます。
  • オプション7では、サムプリントを参照する必要がある各vCenter拡張機能について、設定済みのサムプリント値が表示されます。
  • オプション8を選択すると、基本情報(対象者、発行者、有効期限、サムプリントなど)の一覧が表示されます。

3. 証明書の管理

Manage vCenter Certificates
-----------------------------------------------------------------
 1. Machine SSL certificate
 2. Solution User certificates
 3. CA certificates in VMware Directory
 4. CA certificates in VECS Directory
 5. SMS certificates
 6. Data Encipherment certificate
 7. vCenter Extension thumbprints
 8. STS signing certificates
 9. VMCA certificate
10. Smart Card CA certificates
11. LDAPS Identity Source certificates
12. Clear expired certificates in BACKUP_STORE in VECS
13. Clear TRUSTED_ROOT_CRLS store in VECS
14. Clear Machine SSL CSR in VECS
  1. VECS内のマシンSSL証明書を置き換え、現在のノードのSSLトラストアンカーを更新します。
    VMCA署名付き証明書、またはカスタムCA署名付き証明書を使用できます。
    • カスタムCA署名証明書 - 秘密鍵と証明書署名要求を生成するか、署名済みの証明書と鍵をインポートするオプションがあります。
      提示されたCA署名証明書に 完全なCAチェーンが含まれていない場合、スクリプトは完全なチェーンを含むファイルの入力を求めます。
    • 注: vCenter 8.0 U3h 以降で VMCA 証明書モードが vmca 設定の場合に限り、VMCA によって発行されたマシン SSL 証明書は有効期限の 5日前に自動的に更新されます。
  2. VECS 内のソリューション ユーザー証明書を置き換え、VMware Directory 内のサービス プリンシパル エントリを更新します。
    vpxd-extension のサムプリントは vCenter データベースで更新されます。VMCA 署名証明書またはカスタム CA 署名証明書を使用できます。
    • カスタムCA署名証明書 - 秘密鍵と証明書署名要求(CSR)を生成するか、署名済みの証明書と鍵をインポートするオプションがあります。
      提示されたCA署名証明書に 完全なCAチェーン が含まれていない場合、スクリプトは完全なチェーンを含むファイルの入力を求めます。
  3. VMware Directory 内の CA 証明書の情報が表示され、さらに VMware Directory に証明書を公開または削除するためのオプションを含む別のサブメニューが表示されます。
  4. VECS 内の CA 証明書の情報を表示し、1 つ以上の証明書を削除するよう促します (CA 証明書は、VECS の TRUSTED_ROOTS ストアに追加するために、VMware Directory に公開されている必要があります)。
  5. VECS の SMS ストア内のエントリが出力されます。これには、vmware-sps サービスで使用される証明書と、信頼する必要のあるサードパーティの VASA プロバイダー証明書が含まれます。サブメニューには、SMS 自己署名証明書と VMCA 署名証明書を再生成するオプションがあります。
  6. VECS のデータ暗号化証明書と秘密鍵を置き換えます。
  7. 次の拡張子のサムプリントに不一致がないか、vpx_ext テーブルをチェックします。
    • com.vmware.vim.eam (vpxd-extension)
    • com.vmware.rbd (vpxd-extension) [vCenter 8.0 U2まで]
    • com.vmware.vcIntegrity (vpxd-extension)
    • com.vmware.vlcm.client (vpxd-extension) [vCenter 8.0以降]
    • com.vmware.imagebuilder (vpxd-extension) [vCenter 7.0および8.0]
    • com.vmware.vsan.health (マシンSSL)
    • com.vmware.vmcam(認証プロキシ)

      vCenter 9.0では、証明書のPEMファイルは、SHA1サムプリントに加えて、vCenterデータベースの拡張エントリに保存されます。
      これらの証明書は、対応する証明書と比較され、一致していることが確認されます。また、証明書が交換された場合は、それに応じて更新されます。

      不一致を検出した場合は、ユーザーに拡張機能のサムプリントを更新するよう促します。
  8. 現在の STS 署名証明書と CA 証明書をバックアップし、VMware ディレクトリ内のすべての TenantCredential エントリを削除してから、VMCA 署名証明書を使用して新しいエントリを作成します。ユーザー定義のスケジュール済みタスクがある場合、STS 署名証明書を交換するとタスクに保存されている認証トークンが無効になり、タスクを削除して再作成する必要があることがユーザーに通知します。
     詳細については、「Domain/Admin user based Scheduled Tasks failing to run on vCenter with error "NotAuthenticated for the task operation"」を参照してください。 
  9. VMCA証明書が置き換えられ、マシンSSL、ソリューションユーザー、およびSTS署名証明書が再発行されます。
    VMCA署名証明書、またはカスタムCA署名証明書を使用できます。
    • カスタムCA署名証明書 - 秘密鍵と証明書署名要求(CSR)を生成するか、署名済みの証明書と鍵をインポートするオプションがあります。
      提示されたCA署名証明書に 完全なCAチェーンが含まれていない場合、スクリプトは完全なチェーンを含むファイルの入力を求めます。
    • 証明書を自己署名証明書に置き換え、証明書を再生成しないオプションが利用可能です。
      これにより、マシンのSSL証明書とVMSA証明書を置き換えた後、必要な証明書のみを再生成するという柔軟な対応が可能です。
  10. リバースプロキシのスマートカードCAフィルタファイルと、VMwareディレクトリ内のスマートカード発行CA証明書の両方の証明書リストを表示します。
    サブメニューには、フィルタファイルへの証明書の追加/削除、およびVMwareディレクトリへのスマートカード発行CA証明書の追加/削除のオプションがあります。
    このオプションは、vCenter Server 9.0以降ではサポートされていません。
  11. LDAPS IDソース(vCenter 7.0ではADFS)経由でAD用に構成されている証明書の一覧を表示します。サブメニューには、LDAPサーバー証明書を追加または削除するオプションがあります。
  12. VECS の BACKUP_STORE および存在する場合は BACKUP_STORE_H5C 内の期限切れの証明書を削除します。
  13. VECS の TRUSTED_ROOT_CRLS ストア内のエントリをクリアします。
  14. VECS の MACHINE_SSL_CERT ストアにある __MACHINE_CSR エントリをクリアします。
    このエントリは、vSphere Client から証明書署名要求が生成された際に作成され、対応する秘密鍵が含まれています。

4. SSLトラストアンカーの管理

Manage SSL Trust Anchors
-----------------------------------------------------------------
 1. Check SSL Trust Anchors
 2. Update SSL Trust Anchors
  1. ルックアップサービス登録のSSLトラストアンカーとして使用されているすべての固有証明書と、SSOドメイン内のすべてのvCenterノードの現在のマシンSSL証明書に関する情報が出力されます。
    対応するサービスIDとエンドポイントURIも出力され、各サービス登録/エンドポイントで使用されている証明書が示されます。
  2. SSOドメイン内の選択したvCenter ServerのSSLトラストアンカーを更新します。
    この方法は、ルックアップサービスのスクリプトやライブラリを利用するのではなく、エントリを直接変更します。

5. 設定のチェック

Configuration Check Menu
-----------------------------------------------------------------
 1. Check for SSL Interception
 2. Check STS server certificate and configuration
3. Check VECS store status and permissions
  1. ポート443で hostupdate.vmware.com に接続し、提示された証明書の発行者を「DigiCert TLS RSA SHA256 2020 CA1」と照合してSSL傍受の有無を確認します。
    証明書が別の組織によって発行されている場合、提示されたCA証明書をダウンロードしてVMware Directoryに公開するようユーザーに促されます。
    CAチェーンが不完全な場合は、不足しているCA証明書を手動でインストールする必要があることが通知されます。
    不足しているCA証明書を入手したら、このオプションを使用してインストールできます。
  2. STS サービスが VECS の MACHINE_SSL_CERT ストア (6.x/7.x の新規導入で使用) にある証明書を使用するように構成されているか、または従来の STS_INTERNAL_SSL_CERT ストア (システムが 5.5 からアップグレードされた場合に存在する) にある証明書を使用するように構成されているかを確認します。
    STS サービスが MACHINE_SSL_CERT ストア以外のストアを参照するように構成されている場合、ユーザーは構成を更新してサービスを再起動するように求められます。

    また、VMware Directory の vmwSTSConnectionStrings 属性もチェックします。スタンドアロンの vCenter では、この値は vCenter ホスト名によって VMware Directory インスタンスの場所を参照しますが、SSO ドメイン内の他の vCenter/PSC ノードと拡張リンクモードになっている vCenter では、この値は localhost を介して VMware Directory インスタンスを参照する必要があります。
    この値が正しく設定されていない場合は、更新を促すメッセージが表示されます。
  3. VECS のデフォルト ストアの存在と権限の割り当てを確認します。ストアが不足している場合は、再作成を促します。ストアに想定される権限が見つからない場合は、再割り当てを促します。
    現在の vCenter ビルドに対応する VECS ストア権限テンプレートが見つからない場合は、作成を促します (新規導入時のみ実行してください)。

6. VMCA署名付き証明書を使用してすべての証明書をリセットします。

このオプションを選択すると、以下の証明書がVMCAによって署名された証明書にリセットされます。

- Machine SSL (including SSL Trust Anchors and vCenter extension thumbprints)
- Solution Users (including vCenter extension thumbprints)
- STS Signing

7. ESXi証明書の操作

Manage ESXi Certificates
-----------------------------------------------------------------
 1. Check ESXi/vCenter certificate trust
 2. Check ESXi certificate against vCenter database
 3. Replace ESXi certificate

注: vCenter 8.0 U3h 以降で VMCA 証明書モードが vmca 設定の場合に限り、VMCA によって発行されたマシン SSL 証明書は有効期限の 5日前に自動的に更新されます。

  1. ESXi ホスト上のリバース プロキシ (ポート 443) および IOFilter VASA プロバイダ (ポート 9080) で使用される証明書の発行者を、VECS の TRUSTED_ROOTS ストアで確認します。
    vCenter の Machine SSL 証明書の発行者、および /etc/vmware/ssl/castore.pem ファイル内のSMS 証明書の発行者を確認します。 (SMS証明書は /etc/vmware/ssl/iofiltervp_castore.pem ファイルに存在する場合もあります)。
  2. ESXiホストのポート443で提供されるSSL証明書を vCenter データベースの情報と比較します。
    不一致がある場合、ホスト上の vSphere HA や vSAN などのサービスに問題が発生する可能性があります。
  3. ESXiホスト上の /etc/vmware/ssl/rui.crt、 /etc/vmware/ssl/rui.key、および /etc/vmware/ssl/castore.pem ファイルを置き換えることが出来ます。
    • 新しい証明書とキーを適用するには、ホスト上のサービスを再起動する必要があります。
    • vCenterデータベースに新しい証明書情報を更新するには、ホストをvCenterで切断してから再接続する必要があります。

8. サービスの再起動

Restart VMware Services
-----------------------------------------------------------------
 1. Restart all VMware services
 2. Restart specific VMware service
  1. VMwareサービスをすべて再起動します。
  2. 特定のサービスを再起動します。これは、service-control --list の出力にあるサービスのリストを照合します。

9. 証明書レポートを生成する

生成されたレポートには、以下の情報が含まれています。

  • VECSのすべてのエントリ
  • VMware ディレクトリ内のすべてのCA証明書
  • VMware Directory 内のすべてのサービスプリンシパル(ソリューションユーザー)
  • VMware Directory 内のすべてのSTS署名証明書エントリ
  • ファイルシステムに保存されている各種サービス証明書(認証プロキシ、VMware Directory など)
  • スマートカード認証用のCA証明書(vCenter Server 9.0以降では提供されません)
  • LDAP(複数)のIDソースを介したAD用のCA証明書
  • ルックアップサービス登録用のSSLトラストアンカー

レポートが表示され、/var/log/vmware/vCert ディレクトリファイルにも保存されます。 

Additional Information

ハッシュ情報:

英語版の記事 にはダウンロードするツールのハッシュ値が記載されています。