您可以使用一组 CLI 管理 VMCA (VMware Certificate Authority)、VECS(VMware Endpoint 证书存储)、VMware Directory Service (vmdir) 和 Security Token Service (STS) 证书。vSphere Certificate Manager 实用程序也支持许多相关任务,但手动证书管理和管理其他服务需要使用 CLI。
您通常使用 SSH 连接到设备 shell,访问 CLI 工具以管理证书和关联服务。有关详细信息,请参见 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/2100508。
手动替换 vSphere 证书提供了关于使用 CLI 命令替换证书的示例。
CLI | 描述 | 请参见 |
---|---|---|
certool | 生成并管理证书和密钥。属于 VMCAD(VMware 证书管理服务)的一部分。 | |
vecs-cli | 管理 VMware 证书存储实例的内容。属于 VMware Authentication Framework 守护进程 (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
运行 vSphere CLI 所需的特权
所需的特权取决于您使用的 CLI 以及要运行的命令。例如,对于大多数证书管理操作,您必须是本地 vCenter Single Sign-On 域 (vsphere.local) 的管理员。有些命令可供所有用户使用。
- dir-cli
- 必须是本地域(默认为 vsphere.local)的管理员组成员才能运行 dir-cli 命令。如果不指定用户名和密码,系统将提示您输入本地 vCenter Single Sign-On 域的管理员(默认为 [email protected])的密码。
- vecs-cli
- 最初,只有存储所有者和拥有完整访问特权的用户才能访问存储。管理员组中的用户具有完整访问权限。
更改 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
- 创建配置文件的副本,然后编辑该文件。使用 --config命令行选项指定该文件。指定完整路径,避免路径名称问题。
-
/usr/lib/vmware-vmca/bin/certool -–gencert --config /tmp/myconfig.cfg
- 在命令行中替代单个值。例如,要替代局部性,请运行以下命令:
/usr/lib/vmware-vmca/bin/certool -–gencert -–privkey=private.key –-Locality="Mountain View"
- 对于解决方案用户证书,按照约定,该名称为 <sol_user name>@<domain>,但如果在环境中使用其他约定,则可以更改该名称。
- 对于计算机 SSL 证书,使用计算机的 FQDN。
VMCA 仅允许使用一个 DNSName(在 Hostname 字段中),但不允许使用其他任何别名选项。如果 IP 地址由用户指定,则也会存储在 SubAltName 中。