主管 使用 TLS 在 主管 与 NSX 之间进行通信。如果已部署具有 NSX 网络堆栈的 主管,则可能需要轮换各种 NSX 证书。
主管 使用的 NSX 证书
具有 NSX 的 WCP 使用两个证书与 NSX 集成:
- NSX 负载均衡器证书和密钥
- NSX Manager 证书和密钥
有关这些证书的详细信息,请参见
《NSX 管理指南》中的
用于 NSX 联合的证书。
注: 本主题中的信息基于 NSX v3.2。
轮换 NSX 负载均衡器证书和密钥
您可以在
屏幕上轮换 NSX 负载均衡器 TLS 证书和密钥。
- 选择 以生成证书。
- 选择 以更新证书和密钥。
为每个 NSX Manager 节点生成自签名证书和密钥
主管 使用企业管理员帐户访问 NSX Manager API。如果 NSX Manager 证书过期,主管 将无法访问 NSX。
如果 NSX Manager 证书过期,请查看
主管 日志:
tail -f /var/log/vmware/wcp/wcpsvc.log
您可能会看到类似以下内容的错误:
error wcp [kubelifecycle/nsx_pi.go:47] ... Error creating WCP service principal identity. Err: NSX service-wide principal identity creation failed: ... x509: certificate has expired
error wcp [kubelifecycle/controller.go:554] ... Failed to create WCP service PI in NSX. Err: WCP service principal idenitity creation failed: NSX service-wide principal identity creation failed: ... x509: certificate has expired
要解决此问题,请更新每个 NSX Manager 节点的证书和密钥。如果使用具有 VIP 地址的 3 节点 NSX 管理集群,请注意 主管 不使用 VIP 地址。这意味着,您需要在每个 NSX Manager 节点上轮换每个证书。无法通过仅替换 VIP 证书来轮换证书。
- 要轮换 NSX Manager 节点的证书,请创建一个证书签名请求,并在其中填充以下内容。
其中:
NSX-MGR-IP-ADDRESS
是 NSX Manager IP 地址NSX-MGR-FQDN
是 NSX Manager FQDN 或 IP 地址
nsx-mgr-01-cert.cnf
[ req ] default_bits = 2048 default_md = sha256 prompt = no distinguished_name = req_distinguished_name x509_extensions = SAN req_extensions = v3_ca [ req_distinguished_name ] countryName = US stateOrProvinceName = California localityName = CA organizationName = NSX commonName = NSX-MGR-IP-ADDRESS #CAN ONLY USE IF SAN IS ALSO USED [ SAN ] basicConstraints = CA:false subjectKeyIdentifier = hash authorityKeyIdentifier=keyid:always,issuer:always [ v3_ca ] subjectAltName = DNS:NSX-MGR-FQDN,IP:NSX-MGR-IP-ADDRESS #MUST USE
例如:[ req ] default_bits = 2048 default_md = sha256 prompt = no distinguished_name = req_distinguished_name x509_extensions = SAN req_extensions = v3_ca [ req_distinguished_name ] countryName = US stateOrProvinceName = California localityName = CA organizationName = NSX commonName = 10.197.79.122 [ SAN ] basicConstraints = CA:false subjectKeyIdentifier = hash authorityKeyIdentifier=keyid:always,issuer:always [ v3_ca ] subjectAltName = DNS:10.197.79.122,IP:10.197.79.122
- 使用 OpenSSL 生成 SSL 证书和私钥。
openssl req -newkey rsa -nodes -days 1100 -x509 -config nsx-mgr-01-cert.cnf -keyout nsx-mgr-01.key -out nsx-mgr-01.crt
- 运行命令后,确认您看到以下输出。
Generating a 2048 bit RSA private key ...............+++ ................+++ writing new private key to 'nsx-mgr-01.key'
- 您应看到 3 个文件:初始签名请求、运行签名请求生成的证书和私钥。
- 运行以下命令以验证证书和私钥。
openssl x509 -in nsx-mgr-01.crt -text -noout
- 如果使用多节点 NSX 管理集群,请对每个 NSX Manager 节点重复此过程。相应更改证书签名请求中的 IP 地址和 FQDN 以及输出文件名。
将 SSL 证书和私钥导入到 NSX-T 管理控制台
完成以下步骤,将每个 NSX Manager 节点证书和私钥导入到 NSX。如果本地保存
nsx.crt
和
nsx.key
文件,则可以将其上载到 NSX,也可以复制/粘贴内容。
- 登录到 NSX 管理控制台,然后导航到 页面。
- 单击注: 由于您生成了自签名证书,因此请务必选择 导入证书,而不是 导入 CA 证书。
。
- 为证书和密钥对输入描述性名称,例如
nsx-mgr-01-cert-and-key
。 - 浏览并选择证书文件,或者复制/粘贴其内容,包括页眉和页脚。
例如:
-----BEGIN CERTIFICATE----- MIID+zCCAuOgAwIBAgIUCfXaWxNwXvrEFQbt+Dvvp9C/UkIwDQYJKoZIhvcNAQEL BQAwVTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExCzAJBgNVBAcM ... FGlnyT4vxpa2TxvXNTCuXPV9z0VtVBF2QpUJluGH7W1i2wUnApCCXhItcBkfve0f pCi9YoRoUT8fuMBYo7sL -----END CERTIFICATE-----
- 浏览并选择密钥,或者复制/粘贴其内容,包括页眉和页脚。
例如:
-----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5GNlUSYHa1p+E XuOGAsIgiFxUnerRYNm2ARMqRb/xKK6R4xgZhBmpmikpE90vQibvouHqnL13owq7 ... OzbnwMCUI2TeY1iJNx3HNKUrdLvrr8CMh7Looe0L4/2j7ygew2x2C5m272SCJYs/ ly+bOXEYaH4/ORHbvvr0jQ== -----END PRIVATE KEY-----
- 为服务证书选项选择否。
- 输入证书和密钥对的描述,例如
Cert and Private Key for NSX Manager Node 1
。 - 单击导入。
- 对每个 NSX Manager 证书和密钥对重复此过程。
使用 NSX API 注册 NSX Manager 证书
将证书和密钥上载到 NSX Manager 后,使用 NSX API 进行注册。另请参见
《NSX 管理指南》中的
导入和替换证书。
- 在 NSX Manager 中,选择 。
- 在 ID 列中,选择要注册的证书的 ID,然后从弹出窗口中复制该证书 ID。
- 运行以下 API 调用以列出证书。获取要更新的每个证书的证书节点 ID。
GET https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates
- 运行以下 API 调用以验证证书。
GET https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>?action=validate
例如:https://10.19.92.133/api/v1/trust-management/certificates/070bae44-7548-45ff-a884-578f079eb6d4?action=validate
- 运行以下 API 调用以替换 NSX Manager 节点的证书:
POST https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>? action=apply_certificate&service_type=API&node_id=<node-id>
例如:POST https://10.19.92.133/api/v1/trust-management/certificates/070bae44-7548-45ff-a884-578f079eb6d4? action=apply_certificate&service_type=API&node_id=e61c7537-3090-4149-b2b6-19915c20504f
- 如果使用多节点 NSX 管理集群,请对每个 NSX Manager 节点重复证书替换过程。
- 完成后,删除您替换的每个已过期的证书。您可以使用 NSX Manager 界面或 NSX API 执行此操作。
例如:
https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>