目录
- 摘要
- 1. vSphere Certificate Architecture
- 2. 证书更新和替换概述
- 2.1更新 VMCA 签名的证书
- (1)使用 vSphere Client UI
- (2)使用 vSphere Certificate Manager 命令行工具(自动)
- (3)使用 dir-cli、certool 和 vecs-cli 命令行工具(手动)
- (4)使用 vSphere Automation API(自动化脚本)
- 2.2 使 VMCA 成为中间 CA
- (1)使用 vSphere Certificate Manager 命令行工具(自动)
- (2)使用 dir-cli、certool 和 vecs-cli 命令行工具(手动)
- 2.3 使用自定义证书替换 VMCA 签名证书
- (1)使用 vSphere Client UI
- (2)使用 vSphere Certificate Manager 命令行工具(自动)
- (3)使用 dir-cli、certool 和 vecs-cli 命令行工具(手动)
- 2.4 混合部署
- 2.5 ESXi 证书替换
- 参考文献
- 关联博文
摘要
本系列博文会深入浅出的引导读者认识,了解,理解 vSphere 环境中的证书。
本篇博文主要介绍了 vSphere 证书(替换)关系示意图
1. vSphere Certificate Architecture
一个 vSphere 虚拟化环境中一般包括一台或以上的 vCenter Server,外加一台或以上的 ESXi 主机。那么这样一个虚拟化环境中,其证书架构图如下所示:
VMCA CA 作为 vSphere 中的根证书,为各种服务和组件签发证书。vSphere 环境中主要的证书有 ESXi 证书,Machine SSL 证书,Solution User 证书,SMS 证书,data-encipherment 证书以及 STS Signing 证书。如上图所示。其中
- ESXi 证书存储在 ESXi 主机中,
- Machine SSL 证书,Solution User 证书,SMS 证书,data-encipherment 证书存储在 VECS 中,
- STS Signing 证书存储在 SSO 中。
2. 证书更新和替换概述
vSphere 支持用户根据公司安全策略和系统需求来使用企业签名 CA 替换 vSphere 默认证书。用户可以根据喜好,自行选择替换证书的方式,包括
- 通过 vSphere Client UI (Certificate Management)
- 通过 vSphere Certificate Manager 实用程序(certificate-manager)
- 通过安装时附带的 CLI 手动执行证书替换(dir-cli、certool 和 vecs-cli )
2.1更新 VMCA 签名的证书
如果 VMCA 证书过期或由于其他原因要对其进行替换,可以使用证书管理 CLI 执行此过程。默认情况下,VMCA 根证书有效期为十年,且 VMCA 签名的所有证书都会在根证书过期时过期,即有效期最长为十年。
由 VMCA 签发的证书有两大类,分别是
- Machine SSL Certificate 计算机 SSL 证书
- Solution User Certificate解决方案用户证书
由 VMCA 签名的证书存储在 VECS 中
(1)使用 vSphere Client UI
在 UI 上只能对 Machine SSL 证书进行更新。
关于 VMCA 根证书,包括 Trusted Root 证书和解决方案用户证书,需要使用 CLI 工具(certificate-manager 或 dir-cli、certool、vecs-cli)来进行更新和替换。
(2)使用 vSphere Certificate Manager 命令行工具(自动)
更新时可以使用以下 选项:
- Replace Machine SSL Certificate with VMCA Certificate (将计算机 SSL 证书替换为 VMCA 证书)
- Replace Solution User Certificate with VMCA Certificate(将解决方案用户证书替换为 VMCA 证书)
- Reset all Certificates(重置所有证书,包括 Machine SSL 和 Solution User 证书)
(3)使用 dir-cli、certool 和 vecs-cli 命令行工具(手动)
- 生成新的 VMCA 签名根证书(请关注后续章节)
- 生成新的计算机 SSL 证书(请关注后续章节)
- 生成新的解决方案用户证书(请关注后续章节)
(4)使用 vSphere Automation API(自动化脚本)
以 Python 为例,Python API 提供了 vcenter.certificate_management.vcenter.Tls.renew() 方法,用于刷新 Machine SSL 证书。具体步骤请参考博客:【vSphere | Python】vSphere Automation SDK for Python Ⅶ—— Certificate Management APIs(上)
[!NOTE]
这里说明的 VMCA 签名的证书可以分为两种情况:
- 第一种是 vSphere 默认证书。
- 第二种是 VMCA 已经是企业自签证书,由 VMCA 继续签名 Machine SSL 和 Solution User 两大类证书,此时这两大类证书也是企业自签名证书。详见1.2 小节
2.2 使 VMCA 成为中间 CA
vSphere 支持将 VMCA 根证书替换为由企业 CA 或第三方 CA 签名的证书。
每次置备 VMCA 证书时都会签署自定义根证书,从而使 VMCA 成为中间 CA。
由第三方或企业 CA 签名的证书使用 VMCA 作为中间 CA
(1)使用 vSphere Certificate Manager 命令行工具(自动)
更新时可以使用以下 选项:
- 将 VMCA 根证书替换为自定义签名证书并替换所有证书。
- Replace Machine SSL Certificate with VMCA Certificate (将计算机 SSL 证书替换为 VMCA 证书)多节点增强型链接模式部署。
- Replace Solution User Certificate with VMCA Certificate(将解决方案用户证书替换为 VMCA 证书)多节点增强型链接模式部署。
(2)使用 dir-cli、certool 和 vecs-cli 命令行工具(手动)
- 替换根证书(中间 CA)(请关注后续章节)
- 替换计算机 SSL 证书(中间 CA)(请关注后续章节)
- 替换解决方案用户证书(中间 CA)(请关注后续章节)
2.3 使用自定义证书替换 VMCA 签名证书
vSphere 支持将现有的 VMCA 签名证书替换为自定义证书。如果使用外部CA直签证书替换,用户必须负责置备和监控所有证书。
外部证书直接存储在 VECS 中
(1)使用 vSphere Client UI
在 UI 上只能对 Machine SSL 证书进行替换成自定义证书。
(2)使用 vSphere Certificate Manager 命令行工具(自动)
更新时可以使用以下 选项:
- Replace Machine SSL Certificate with Custom Certificate(将计算机 SSL 证书替换为自定义证书)
- Replace Solution User Certificates with Custom Certificates(将解决方案用户证书替换为自定义证书)
(3)使用 dir-cli、certool 和 vecs-cli 命令行工具(手动)
- 自定义根证书
- 自定义计算机 SSL 证书
2.4 混合部署
vSphere 支持让 VMCA 提供一些证书,同时对基础架构的其他部分使用自定义证书。
例如,由于解决方案用户证书仅用于验证 vCenter Single Sign-On 的身份,因此可以考虑让 VMCA 提供这些证书。使用自定义证书替换计算机 SSL 证书,以确保所有 SSL 流量的安全。
公司策略通常不允许使用中间 CA。在这些情况下,混合部署是一种有效的解决方案。它会最大程度地减少要替换的证书数量并确保所有流量的安全。混合部署只保留内部流量,即解决方案用户流量,以便使用默认的 VMCA 签名证书。
2.5 ESXi 证书替换
ESXi 证书替换的情况分为两种:
- 被 vCenter Server 纳管的 ESXi 主机
- 不被 vCenter Server 纳管的 ESXi 主机
对于被 vCenter Server 纳管的 ESXi主机,用户可以从 vSphere Client 更改证书置备行为。
选项 | 描述 |
---|---|
VMware Certificate Authority(默认值) | 默认情况下,VMware Certificate Authority (VMCA) 被用作 ESXi 主机证书的证书颁发机构 (CA) 。默认情况下,VMCA 为根 CA,但可将其设置为其他 CA 的中间 CA。在 vmca 模式下,您可以从 vSphere Client 中续订和刷新证书。如果 VMCA 是辅助证书,也将使用 VMCA。 |
自定义证书颁发机构模式 | 如果希望仅使用第三方或企业 CA 签名的自定义证书,则使用此模式。在自定义模式下,您必须自行管理证书。从 vSphere 8.0 Update 3 开始,用户可以从 vSphere Client 中管理自定义证书。 **注:**除非将证书模式更改为“自定义证书颁发机构”( custom),否则在 vSphere Client 中选择 续订等情况下,VMCA 可能会替换自定义证书。 |
指纹模式 | vSphere 5.5 使用指纹模式,且此模式在 vSphere 6.x 中仍可用作后备选项。在此模式下,vCenter Server 会检查证书格式是否正确,但不会检查证书是否有效。甚至会接受已过期的证书。 除非使用其他两种模式之一时遇到无法解决的问题,否则不要使用此模式。某些 vCenter Server 6.x 及更高版本服务在指纹模式下可能无法正常运行。 |
对于不被 vCenter Server 纳管的 ESXi 主机,用户需要借助 ESXi 命令行工具来刷新证书。
参考文献
- vSphere 7 :Certificate Replacement Overview
- vSphere 8 :Replacing vSphere Certificates
关联博文
关于深入浅出 vSphere 证书,请查阅下面的博文:
1:初识和了解 vSphere证书
2:了解 vSphere 证书的类型,作用以及保存位置
3:vSphere 证书的更新和替换概述