vecs-cli 命令集可用于管理 VMware Certificate Store (VECS) 实例。将这些命令与 dir-clicertool 配合使用可管理证书基础架构和其他 Platform Services Controller 服务。

vecs-cli store create

创建证书存储。

选项 描述
--name <name> 证书存储的名称。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

例如:
vecs-cli store create --name <store>

vecs-cli store delete

删除证书存储。无法删除 MACHINE_SSL_CERT、TRUSTED_ROOTS 和 TRUSTED_ROOT_CRLS 系统存储。具有必需特权的用户可以删除解决方案用户存储。

选项 描述
--name <name> 要删除的证书存储的名称。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

例如:
vecs-cli store delete --name <store>

vecs-cli store list

列出证书存储。

选项 描述

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

VECS 包括以下库。
表 1. VECS 中的库
描述
计算机 SSL 库 (MACHINE_SSL_CERT)
  • 由每个 vSphere 节点上的反向代理服务使用。
  • 由 VMware Directory Service (vmdir) 在嵌入式部署和每个 Platform Services Controller节点上使用。

vSphere 6.0 及更高版本中的所有服务通过使用计算机 SSL 证书的反向代理进行通信。为了实现向后兼容性,5.x 服务仍使用特定端口。因此,某些服务(如 vpxd)仍使其自身的端口处于打开状态。

受信任的根存储 (TRUSTED_ROOTS) 包含所有受信任的根证书。
解决方案用户库
  • machine
  • vpxd
  • vpxd-extension
  • vsphere-webclient
VECS 为每个解决方案用户提供一个库。每个解决方案用户证书的主体必须是唯一的,例如 machine 证书不能具有与 vpxd 证书相同的主体。

解决方案用户证书用于对 vCenter Single Sign-On进行身份验证。vCenter Single Sign-On 会检查证书是否有效,但不检查其他证书属性。在嵌入式部署中,所有解决方案用户证书都位于相同的系统中。

以下解决方案用户证书存储包括在每个管理节点和每个嵌入式部署的 VECS 中:

  • machine:由组件管理器、许可证服务器和日志记录服务使用。
    注: Machine 解决方案用户证书与计算机 SSL 证书没有任何关系。计算机解决方案用户证书用于进行 SAML 令牌交换。计算机 SSL 证书用于计算机的安全 SSL 连接。
  • vpxd:vCenter 服务守护程序 (vpxd) 存储位于管理节点和嵌入式部署上。vpxd 使用此存储中存储的解决方案用户证书对 vCenter Single Sign-On 进行身份验证。
  • vpxd-extension:vCenter 扩展存储。包括 Auto Deploy 服务、Inventory Service 以及不属于其他解决方案用户的其他服务。
  • vsphere-webclientvSphere Web Client 存储。还包括其他一些服务,例如性能图表服务。

每个 Platform Services Controller节点包含一个 machine 证书。

vSphere 证书管理器实用程序备份库 (BACKUP_STORE) 由 VMCA(VMware 证书管理器)用来支持证书恢复。仅将最近的状态存储为备份,无法返回多个步骤。
其他库 解决方案可能会添加其他库。例如,Virtual Volumes 解决方案会添加 SMS 库。请勿修改这些库中的证书,除非 VMware 文档或 VMware 知识库文章要求进行此类修改。
注: 删除 TRUSTED_ROOTS_CRLS 存储可能会损坏证书基础架构。请勿删除或修改 TRUSTED_ROOTS_CRLS 存储。
例如:
vecs-cli store list

vecs-cli store permissions

授予或撤销对存储的权限。使用 --grant--revoke 选项。

存储所有者可以执行所有操作,包括授予和撤销权限。本地 vCenter Single Sign-On 域的管理员(默认为 [email protected])对所有存储具有所有特权,包括授予和撤销权限。

您可以使用 vecs-cli get-permissions --name <store-name> 检索存储的当前设置。

选项 描述
--name <name> 证书存储的名称。
--user <username> 被授予权限的用户的唯一名称。
--grant [read|write] 授予读取或写入权限。
--revoke [read|write] 撤销读取或写入权限。当前不受支持。

vecs-cli store get-permissions

检索存储的当前权限设置。

选项 描述
--name <name> 证书存储的名称。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

vecs-cli entry create

在 VECS 中创建一个条目。使用此命令向存储中添加一个专用密钥或证书。

选项 描述

--store <NameOfStore>

证书存储的名称。

--alias <Alias> 证书的可选别名。对于受信任的 root 库,将忽略此选项。
--cert <certificate_file_path> 证书文件的完整路径。
--key <key-file-path>

与证书对应的密钥的完整路径。

可选。
--password <password> 加密专用密钥的可选密码。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

vecs-cli entry list

列出指定存储中的所有条目。

选项 描述
--store <NameOfStore>

证书存储的名称。

vecs-cli entry getcert

从 VECS 中检索证书。可以将证书发送到输出文件或将其显示为人工可读的文本。

选项 描述
--store <NameOfStore>

证书存储的名称。

--alias <Alias> 证书的别名。
--output <output_file_path> 要向其写入证书的文件。
--text 显示证书的人工可读版本。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

vecs-cli entry getkey

检索存储在 VECS 中的密钥。可以将密钥发送到输出文件或将其显示为人工可读的文本。

选项 描述
--store <NameOfStore>

证书存储的名称。

--alias <Alias> 密钥的别名。
--output <output_file_path> 要向其写入密钥的输出文件。
--text 显示密钥的人工可读版本。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

vecs-cli entry delete

删除证书存储中的条目。如果删除 VECS 中的条目,则会将其从 VECS 中永久移除。唯一的例外是当前根证书。VECS 轮询根证书的 vmdir。

选项 描述
--store <NameOfStore>

证书存储的名称。

--alias <Alias> 要删除的条目的别名。

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。

-y 取消确认提示。仅适用于高级用户。

vecs-cli force-refresh

强制刷新 VECS。默认情况下,VECS 会每 5 分钟轮询 vmdir 中的新根证书文件。使用此命令即时更新 vmdir 中的 VECS。

选项 描述

--server <server-name>

如果您连接到远程 VECS 实例,则用于指定服务器名称。

--upn <user-name>

用于登录到--server <server-name> 指定的服务器实例的用户主体名称。创建库时,会在当前用户环境中创建。因此,该库的所有者是当前用户环境,而不总是 root 用户。