CLI のセットを使用すると、VMCA (VMware Certificate Authority)、VECS (VMware Endpoint Certificate Store)、VMware Directory Service (vmdir)、および Security Token Service (STS) 証明書を管理できます。vSphere Certificate Manager ユーティリティでは、多くの関連タスクもサポートしていますが、手動の証明書管理とその他のサービスの管理には CLI が必要になります。

通常、SSH を使用してアプライアンス シェルに接続することによって、証明書および関連サービスを管理するための CLI ツールにアクセスします。詳細については、VMware ナレッジベースの記事 (https://kb.vmware.com/s/article/2100508) を参照してください。

手動での vSphere 証明書の置き換えでは、CLI コマンドを使用して証明書を置き換える方法の例を紹介します。

表 1. 証明書および関連サービスを管理する vSphere CLI ツール
CLI 説明 詳細については、ドキュメントを参照してください。
certool 証明書およびキーを生成および管理します。VMCAD の一部としての VMware 証明書管理サービス。

certool 初期化コマンド リファレンス

vecs-cli VMware 証明書ストア インスタンスのコンテンツを管理します。VMware Authentication Framework Daemon (VMAFD) の一部です。 vecs-cli コマンド リファレンス
dir-cli VMware Directory Service に証明書を作成し更新します。VMAFD の一部です。 dir-cli コマンド リファレンス
sso-config.sh STS 証明書を管理します。 コマンドライン ヘルプ。オプションなしで sso-config.sh を入力すると、コマンドライン ヘルプが表示されます。
service-control 証明書の置換ワークフローの一部などで、サービスを開始または停止します。

このコマンドを実行して、他の CLI コマンドを実行する前にサービスを停止します。

vSphere CLI の場所

デフォルトでは、CLI は次の場所にあります。

/usr/lib/vmware-vmafd/bin/vecs-cli
/usr/lib/vmware-vmafd/bin/dir-cli
/usr/lib/vmware-vmca/bin/certool
/opt/vmware/bin/sso-config.sh
注: service-control コマンドでパスを指定する必要はありません。

vSphere CLI の実行に必要な権限

必要な権限は、使用する CLI と実行するコマンドによって変わります。たとえば、ほとんどの証明書管理の操作を行うには、ローカルの vCenter Single Sign-On ドメイン(デフォルトは vsphere.local)の管理者であることが必要です。一部のコマンドは、すべてのユーザーが使用できます。

dir-cli
dir-cli コマンドを実行するには、ローカル ドメイン(デフォルトは vsphere.local)の管理者グループのメンバーであることが必要です。ユーザー名とパスワードを指定しない場合、ローカルの vCenter Single Sign-On の管理者(デフォルトは [email protected])のパスワードを入力するように求められます。
vecs-cli
最初は、ストアの所有者と包括的なアクセス権を持つユーザーのみストアにアクセスできます。管理者グループのユーザーには、包括的なアクセス権限があります。
MACHINE_SSL_CERT および TRUSTED_ROOTS ストアは特別なストアです。インストールのタイプによっては、root ユーザーまたは管理者ユーザーにのみ完全なアクセス権があります。
certool
ほとんどの certool コマンドでは、ユーザーが管理者グループに属している必要があります。以下のコマンドはすべてのユーザーが実行できます。
  • genselfcacert
  • initscr
  • getdc
  • waitVMDIR
  • waitVMCA
  • genkey
  • viewcert

certool 構成オプションの変更

certool --gencert または他の特定の証明書の初期化または管理コマンドを実行する場合、コマンドは構成ファイルからすべての値を読み取ります。既存のファイルを編集したり、-–config=<file name> オプションを使用してデフォルトの構成ファイルにオーバーライドしたり、コマンド ラインの値にオーバーライドしたりできます。

構成ファイル certool.cfg は、デフォルトでは /usr/lib/vmware-vmca/share/config/ ディレクトリにあります。

このファイルには、以下のデフォルト値を持つ複数のフィールドがあります。

Country = US
Name= Acme
Organization = AcmeOrg
OrgUnit = AcmeOrg Engineering
State = California 
Locality = Palo Alto
IPAddress = 127.0.0.1	
Email = [email protected]
Hostname = server.acme.com
注: OU (organizationalUnitName) フィールドは必須ではなくなりました。
以下に示すように、値を変更するには変更されたファイルをコマンド ラインで指定するか、個別の値をコマンド ラインでオーバーライドします。
  • 構成ファイルのコピーを作成し、ファイルを編集します。 --config コマンドライン オプションを使用してファイルを指定します。パス名の問題を回避するため、フル パスを指定します。
  • /usr/lib/vmware-vmca/bin/certool -–gencert --config /tmp/myconfig.cfg
  • コマンド ラインで個別の値をオーバーライドします。たとえば、Locality をオーバーライドするには次のコマンドを実行します。
    /usr/lib/vmware-vmca/bin/certool -–gencert -–privkey=private.key –-Locality="Mountain View" 
--Name を指定して証明書の Subject 名の CN フィールドを置き換えます。
  • ソリューション ユーザー証明書の場合、規則に従って名前が <sol_user name>@<domain> になりますが、お使いの環境で別の規則を使用している場合には名前を変更できます。
  • マシン SSL 証明書の場合、マシンの完全修飾ドメイン名 (FQDN) が使用されます。

    VMware 認証局 (VMCA) には DNSName(Hostname フィールド内)があるのみで他のエイリアス オプションは許容されません。ユーザーによって IP アドレスが指定されていると、SubAltName に同様に格納されます。

--Hostname パラメータを使用して証明書の SubAltName の DNSName を指定します。