您导入的 CA 签名证书已过期。
问题
您导入到 NSX Manager 设备主机的 CA 签名证书已过期,您无法继续使用 NSX Application Platform。您必须委派一个自签名 CA 签名证书才能继续使用 NSX Application Platform 及其托管的 NSX 功能。
原因
CA 签名证书的默认过期时间为 825 天。系统自签名证书自动进行续订。如果导入自定义 CA 签名证书,则需要维护该证书的生命周期。如果您忘记续订该证书,NSX Application Platform 和 NSX Manager Unified Appliance 之间的连接将中断,您无法继续使用 NSX Application Platform 及其托管的 NSX 功能。
解决方案
- 以 root 用户身份登录到 NSX Manager 设备。
- 在 NSX Manager 命令提示符下,使用以下 kubectl 命令委派一个自签名 CA 签名证书。
system prompt> kubectl patch certificate ca-cert -n cert-manager --type='json' -p='[{"op": "replace", "path": "/spec/secretName", "value":"ca-key-pair"}]'
- 等待大约 30 秒,然后在 NSX Manager 系统提示符下输入以下 kubectl 和 cat 命令以导出输出证书(每次导出一个)。
system prompt> kubectl get secret -n nsxi-platform egress-tls-cert -o=jsonpath='{.data.tls\.crt}' | base64 -d - > tls.crt
system prompt> kubectl get secret -n nsxi-platform egress-tls-cert -o=jsonpath='{.data.ca\.crt}' | base64 -d - > ca.crt
system prompt> cat tls.crt ca.crt > egress.crt
- 使用用户界面将 egress.crt 导入到 NSX Manager 设备并获取证书 UUID。
- 从浏览器中,使用企业管理员特权登录到 NSX Manager,网址为 https://<nsx-manager-ip-address>。
- 导航到,单击导入,然后从下拉菜单中选择证书。
- 输入证书的名称。
- 将服务证书设置为否。
- 在证书内容文本框中,粘贴您在上一步中创建的 egress.crt 文件的内容。
- 单击保存。
- 在“证书”表中,展开新添加的证书的行并复制证书 ID 值。
- 返回到 NSX Manager 设备 root 用户会话,在系统提示符下使用以下 curl 命令获取 PricinpleIdentity
cloudnative_platform_egress
UUID。
system prompt> curl -ku 'admin:yourAdminPassword' https://127.0.0.1/api/v1/trust-management/principal-identities
- 在系统提示符下,使用以下 curl 命令将 PrincipleIdentity 与导入的证书 ID 绑定在一起。
curl -ku 'admin:yourAdminPassword' https://127.0.0.1/api/v1/trust-management/principal-identities?action=update_certificate -X POST -H "Content-Type: application/json" -H "X-Allow-Overwrite: true" -d '{"principal_identity_id": "<PI-UUID>", "certificate_id": "<EGRESS-CERT-ID>"}'