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

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) 在每个 vCenter Server 节点上使用。

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

解决方案用户库
  • machine
  • vpxd
  • vpxd-extension
  • vsphere-webclient
  • wcp
VECS 为每个解决方案用户提供一个库。每个解决方案用户证书的主体必须是唯一的,例如 machine 证书不能具有与 vpxd 证书相同的主体。

解决方案用户证书用于对 vCenter Single Sign-On 进行身份验证。vCenter Single Sign-On 会检查证书是否有效,但不检查其他证书属性。

VECS 中包含以下解决方案用户证书存储:

  • machine:由 License Server 和日志记录服务使用。
    注: Machine 解决方案用户证书与计算机 SSL 证书没有任何关系。计算机解决方案用户证书用于进行 SAML 令牌交换。计算机 SSL 证书用于计算机的安全 SSL 连接。
  • vpxd:vCenter 服务守护进程 (vpxd) 存储。vpxd 使用存储在此存储中的解决方案用户证书对 vCenter Single Sign-On 进行身份验证。
  • vpxd-extension:vCenter 扩展存储。包括 Auto Deploy 服务、Inventory Service 以及不属于其他解决方案用户的其他服务。
  • vsphere-webclientvSphere Client 存储。还包括其他一些服务,例如性能图表服务。
  • wcp:VMware vSphere® 和 VMware Tanzu™ 存储。

每个 vCenter Server 节点包含一个 machine 证书。

受信任的根存储 (TRUSTED_ROOTS) 包含所有受信任的根证书。
vSphere Certificate Manager 实用程序备份库 (BACKUP_STORE) 由 VMCA (VMware Certificate Manager) 用来支持证书恢复。仅将最近的状态存储为备份,无法返回多个步骤。
其他库 解决方案可能会添加其他库。例如,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 中创建一个条目。使用此命令向存储中添加一个专用密钥或证书。

注: 请勿使用此命令将根证书添加到 TRUSTED_ROOTS 存储,而是使用 dir-cli命令发布根证书。
选项 描述

--store <NameOfStore>

证书存储的名称。

--alias <Alias> 证书的可选别名。对于受信任的根存储,将忽略此选项。
--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 用户。