一、安装配置证书颁发机构

前提:Active Directory 证书服务需要安装在Windows Server2016或者2019的版本上(其他版本未做测试)并且计算机需要加入到域。如果不具备相应环境请参考NSX自签名证书的方式添加证书。

1.安装证书服务

打开服务器管理器并点击右上角管理菜单中的添加角色和功能,按照如下示例完成证书颁发机构证书颁发机构Web注册两项角色的安装。

证书管理创建容器 如何开启证书组件_运维

证书管理创建容器 如何开启证书组件_VMware_02

证书管理创建容器 如何开启证书组件_服务器_03

证书管理创建容器 如何开启证书组件_VMware_04

证书管理创建容器 如何开启证书组件_服务器_05

证书管理创建容器 如何开启证书组件_服务器_06

证书管理创建容器 如何开启证书组件_运维_07

证书管理创建容器 如何开启证书组件_证书管理创建容器_08

证书管理创建容器 如何开启证书组件_运维_09

证书管理创建容器 如何开启证书组件_证书管理创建容器_10

2.配置证书颁发机构

证书管理创建容器 如何开启证书组件_VMware_11

证书管理创建容器 如何开启证书组件_证书管理创建容器_12

证书管理创建容器 如何开启证书组件_证书管理创建容器_13

证书管理创建容器 如何开启证书组件_运维_14

证书管理创建容器 如何开启证书组件_运维_15

证书管理创建容器 如何开启证书组件_NSX-T_16

注意:请勿选择SHA1哈希算法,因为NSX-T3.x中不支持该算法!

证书管理创建容器 如何开启证书组件_证书管理创建容器_17

证书管理创建容器 如何开启证书组件_证书管理创建容器_18

根据安全要求设置CA证书有效期,推荐设置为5年

证书管理创建容器 如何开启证书组件_服务器_19

证书管理创建容器 如何开启证书组件_服务器_20

证书管理创建容器 如何开启证书组件_服务器_21

3.配置NSX证书模板

打开服务器管理器,打开右上角工具菜单>证书颁发机构

证书管理创建容器 如何开启证书组件_NSX-T_22

选择证书模板右键点击管理

证书管理创建容器 如何开启证书组件_运维_23

找到Web服务器证书模板,右键选择复制模板

证书管理创建容器 如何开启证书组件_运维_24

配置兼容性设置

证书管理创建容器 如何开启证书组件_服务器_25

常规选项卡更改模板名称证书有效期

证书管理创建容器 如何开启证书组件_NSX-T_26

扩展选项卡中选中基本约束点击编辑,勾选启用此扩展,配置完成后确定退出

证书管理创建容器 如何开启证书组件_NSX-T_27

关闭窗口返回证书颁发机构

选中证书模板右键点击新建>要颁发的证书模板

证书管理创建容器 如何开启证书组件_服务器_28

打开的窗口中选中刚才创建的模板并点击确定

证书管理创建容器 如何开启证书组件_NSX-T_29

至此完成了证书服务的安装配置以及NSX证书模板的添加。

二、申请证书

1.生成证书签名请求文件

创建.cnf文件

首先为每个管理节点以及管理集群VIP创建.cnf文件通过OpenSSL基于.cnf文件生成相应的CSR文件,后续使用CSR文件向证书颁发机构申请相应的证书并导入到NSX Manager中完成替换。

示例:NSX管理节点一(nsxmgr01.cnf)

[ req ]

default_bits = 2048

distinguished_name = req_distinguished_name

req_extensions = req_ext

prompt = no

[ req_distinguished_name ]

countryName = 填写国家

stateOrProvinceName = 填写 州或省名称

localityName = 填写地区

organizationName = 填写组织机构

commonName = NSX-Manager01

[ req_ext ]

subjectAltName = @alt_names

[alt_names]

DNS.1 = NSX-Manager01

示例:NSX管理节点二(nsxmgr02.cnf)

[ req ]
default_bits = 2048

distinguished_name = req_distinguished_name

req_extensions = req_ext

prompt = no

[ req_distinguished_name ]

countryName = 填写国家

stateOrProvinceName = 填写 州或省名称

localityName = 填写地区

organizationName = 填写组织机构

commonName = NSX-Manager02

[ req_ext ]

subjectAltName = @alt_names

[alt_names]

DNS.1 = NSX-Manager02

示例:NSX管理节点三(nsxmgr03.cnf)

[ req ]
default_bits = 2048

distinguished_name = req_distinguished_name

req_extensions = req_ext

prompt = no

[ req_distinguished_name ]

countryName = 填写国家

stateOrProvinceName = 填写 州或省名称

localityName = 填写地区

organizationName = 填写组织机构

commonName = NSX-Manager03

[ req_ext ]

subjectAltName = @alt_names

[alt_names]

DNS.1 = NSX-Manager03

示例:NSX管理集群VIP(nsxmgr.cnf)

[ req ]

default_bits = 2048

distinguished_name = req_distinguished_name

req_extensions = req_ext

prompt = no

[ req_distinguished_name ]

countryName = 填写国家

stateOrProvinceName = 填写 州或省名称

localityName = 填写地区

organizationName = 填写组织机构

commonName = NSX-Manager

[ req_ext ]

subjectAltName = @alt_names

[alt_names]

DNS.1 = NSX-Manager

生成.csr证书请求文件及密钥

将.cnf文件上传至任意管理节点,使用OpenSSL对应.cnf文件生成.csr和.key文件

示例:

openssl req -nodes -newkey rsa:2048 -keyout nsxmgr01.key -config nsxmgr01.cnf -out nsxmgr01.csr


openssl req -nodes -newkey rsa:2048 -keyout nsxmgr02.key -config nsxmgr02.cnf -out nsxmgr02.csr


openssl req -nodes -newkey rsa:2048 -keyout nsxmgr03.key -config nsxmgr03.cnf -out nsxmgr03.csr


openssl req -nodes -newkey rsa:2048 -keyout nsxmgr.key -config nsxmgr.cnf -out nsxmgr.csr

2.申请证书文件

使用浏览器登录到CA Web注册页面http://<ip>/certsrv/ 

点击下载 CA 证书、证书链或 CRL

证书管理创建容器 如何开启证书组件_NSX-T_30

选中Base64编码并点击下载CA证书

证书管理创建容器 如何开启证书组件_VMware_31

将下载好的CA证书保存待稍后使用

返回首页点击申请证书 >高级证书申请

证书管理创建容器 如何开启证书组件_服务器_32

证书管理创建容器 如何开启证书组件_证书管理创建容器_33

将.scsr文件中的内容粘贴至保存的请求文本框中,证书模板选择之前创建的NSX证书模板后点击提交申请

证书管理创建容器 如何开启证书组件_VMware_34

选择Base 64 编码并点击下载证书

证书管理创建容器 如何开启证书组件_运维_35

此时将得到一个.cer证书文件,重复相同步骤分别申请并下载对应的其他证书文件,注意使用对应的文件名重命名下载的证书文件以便区分

三、替换NSX证书

1.导入证书

从浏览器中,使用管理员特权登录到 NSX Manager,网址为 https://<nsx-manager-ip-address>,打开系统>设置>证书页面

首先导入CA根证书

点击导入>导入CA证书

证书管理创建容器 如何开启证书组件_NSX-T_36

输入CA根证书的名称,将直线下载的CA证书内容复制到证书内容文本框或者点击浏览打开并上传CA证书文件

关闭服务证书并单击导入按钮

证书管理创建容器 如何开启证书组件_证书管理创建容器_37

依次分别导入三个NSX-T管理节点和管理集群VIP证书

点击导入>导入证书

证书管理创建容器 如何开启证书组件_证书管理创建容器_38

注意!证书内容:按以下顺序填入完整的证书链:

—–BEGIN CERTIFICATE—–

NSX-T Manager/Node cert

—–END CERTIFICATE—–

—–BEGIN CERTIFICATE—–

Root CA Cert

—–END CERTIFICATE—–

证书服务:否

证书管理创建容器 如何开启证书组件_运维_39

重复上述步骤分别导入三个NSX-T管理节点及管理集群VIP证书,证书导入完成请在证书列表中检查确认。

2.替换(激活)证书

参考: VMware NSX-T Data Center 产品文档中的替换证书章节

新的证书上传至NSX-T Manager后需要借助 REST API 来完成替换和激活新的证书

获取证书ID:

从浏览器中,使用管理员特权登录到 NSX Manager,在证书页面,证书列表中对应需要激活的证书点击ID单元格可查看到完整的证书ID

证书管理创建容器 如何开启证书组件_服务器_40

证书的替换可以使用Curl(API)调试工具或者以root用户登录到管理节点运行命令发送POST请求来完成

替换之前可通过进行以下 API 调用来验证证书是否有效:

GET https://<nsx-mgr>/api/v1/trust-management/certificates/<certificate-id>?action=validate

替换管理节点证书:

curl -k -u <user>:<password> -X POST "https://<nsxt-fqdn>/api/v1/node/services/http?action=apply_certificate&certificate_id=<certificate-id>"

替换管理集群VIP证书:

curl -k -u <user>:<password> -X POST "https://<NSX_Manager>/api/v1/cluster/api-certificate?action=set_cluster_certificate&certificate_id=<certificate-id>"

要替换 NSX 联合的主体身份证书(暨LOCAL_MANAGER证书),请使用以下 API 调用:POST https://<nsx-mgr>/api/v1/trust-management/certificates?action=set_pi_certificate_for_federation。

例如:

POST https://<nsx-mgr>/api/v1/trust-management/certificates?action=set_pi_certificate_for_federation

{ "cert_id": "<id>",

"service_type": "LOCAL_MANAGER" }

以自签名方式替换NSX-T证书请参考连接