安装 NSX 后,管理器节点和集群具有自签名证书。将自签名证书替换为 CA 签名证书,并使用一个包含 SAN(主体备用名称)的通用 CA 签名证书,可匹配所有节点的 FQDN 和 IP 以及集群的 VIP。一次只能运行一个证书替换操作。
如果使用的是 NSX 联合,可使用以下 API 替换 GM API 证书、GM 集群证书、LM API 证书和 LM 集群证书。
从 NSX 联合 4.1 开始,可以替换用于 GM-LM 通信的自签名证书。此外,全局管理器证书现在还会在注册本地管理器时生成本地管理器证书。本地管理器证书不再是默认证书。
替换全局管理器或本地管理器证书时,站点管理器会将这些证书发送到所有其他联合站点,因此通信保持不变。
- 集群中的 NSX 节点。
- 在 NSX 联合 中。
- NSX Manager 到 NSX Edge。
- NSX Manager 到 NSX 代理。
- NSX Manager REST API 通信(外部)。
您还可以替换为 全局管理器 和 本地管理器 设备自动创建的平台主体身份证书。有关为 NSX 联合自动配置的自签名证书的详细信息,请参见NSX 和 NSX 联合 的证书。
前提条件
- 确认在 NSX Manager 中具有一个证书。请注意,在备用全局管理器上,将停用 UI 导入操作。有关备用全局管理器的导入 REST API 命令的详细信息,请参阅导入自签名证书或 CA 签名证书。
- 服务器证书必须包含基本限制扩展
basicConstraints = CA:FALSE
。 - 通过进行以下 API 调用来验证证书是否有效:
GET https://<nsx-mgr>/api/v1/trust-management/certificates/<cert-id>?action=validate
- 如果需要,请提供您的节点 ID 字符串。有关使用 UI 或 CLI 查找此信息的帮助,请参阅查找证书 API 调用的节点 ID。
过程
- 使用 admin 特权登录到 NSX Manager。
- 选择系统 > 证书。
- 在 ID 列中,选择要使用的证书的 ID,然后从弹出窗口中复制该证书 ID。
确保在导入此证书时,选项 服务证书已设置为 否。
注意:证书链必须采用“证书 - 中间 - 根”这一行业标准顺序。
- 要替换管理器节点的 API 证书,请使用以下 API 调用。要查找您的 Unified Appliance 节点 ID,请参阅查找证书 API 调用的节点 ID。
POST /api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=API&node_id=<node-id>
例如:POST https://<nsx-mgr>/api/v1/trust-management/certificates/77c5dc5c-6ba5-4e74-a801-c27dc09be76b?action=apply_certificate&service_type=API&node_id=e61c7537-3090-4149-b2b6-19915c20504f
注: 如果替换管理器节点的 CBM_MP 证书,则在证书操作完成后,该节点上的 NSX 管理服务将重新启动,以便可以开始使用该新证书。在此重新启动期间,在管理器节点服务备份并运行之前,将无法访问 UI 和 API。如果 VIP 位于此管理器节点上,它将移至另一个管理器节点。在替换其他管理器节点上的 CBM_MP 证书之前,请通过执行get cluster status
并检查管理器组成员集群状态,确保管理服务已启动并正在运行。 - 要替换管理器集群 VIP 的证书,请使用 API 调用:
POST /api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=MGMT_CLUSTER
例如:POST https://<nsx-mgr>/api/v1/trust-management/certificates/d60c6a07-6e59-4873-8edb-339bf75711?action=apply_certificate&service_type=MGMT_CLUSTER
确保从全局管理器的位置管理器中为每个位置的本地管理器更新指纹值。否则,GM 和 ROM 之间的通信将中断。如果未更新指纹,则无法执行诸如选择 NSX Edge 集群或从 全局管理器 UI 请求 Tier-0 BGP 摘要等任务。有关该 API 的详细信息,请参见NSX API 指南。如果未配置 VIP,则无需执行此步骤。
- (可选) 要替换 NSX 联合的本地管理器和全局管理器主体身份证书,请使用以下 API 调用。整个 NSX Manager 集群(本地管理器 和 全局管理器)需要一个 PI 证书。
注:
请勿使用此程序更换与 NSX 联合无关的主要身份证书。要更换主要身份证书,请参阅“添加角色分配”或“主要身份”以获取说明。
POST https://<nsx-mgr>/api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=<service-type>
例如:POST https://<local-mgr>/api/v1/trust-management/certificates/77c5dc5c-6ba5-4e74-a801-c27dc09be76b?action=apply_certificate&service_type=LOCAL_MANAGER
或POST https://<global-mgr>/api/v1/trust-management/certificates/77c5dc5c-6ba5-4e74-a801-c27dc09be76b?action=apply_certificate&service_type=GLOBAL_MANAGER
- 要替换 APH-AR 证书,请使用以下 API 调用。要查找您的 Unified Appliance 节点 ID,请参阅查找证书 API 调用的节点 ID。
POST https://<nsx-mgr>/api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=APH&node_id=<node-id>
例如:POST https://<nsx-mgr>/api/v1/trust-management/certificates/77c5dc5c-6ba5-4e74-a801-c27dc09be76b?action=apply_certificate&service_type=APH&node_id=93350f42-16b4-cb4e-99e0-fce2d17635a3
- 从 NSX 4.1 开始,要替换传输节点 (TN) 或 Edge 主机证书,请使用以下 API 调用。您必须在 NSX Manager 外部生成私钥。如果在 NSX Manager 中生成 CSR,则无法检索 API 调用中所需的私钥。如果是 CA 签名证书,则按以下顺序包括整个链: certificate - intermediate - root。整个证书必须在一行中提供。还需将任何行尾字符替换为 \n。在 pem_encoded 和私钥值中需要执行此操作。要将换行符替换为 \n,您可以在基于 UNIX 的系统上使用以下命令:
awk '{gsub(/\\n/,"\n")}1' certificate.pem
。POST https://<nsx-mgr>/api/v1/trust-management/certificates/action/replace-host-certificate/<transport-node-id> { "display_name": "cert_name", "pem_encoded": "---BEGIN CERTIFICATE---\n<certificate>\n---END CERTIFICATE-----\n", "private_key": "---BEGIN RSA PRIVATE KEY---\n<private rsa key>\n---END RSA PRIVATE KEY---\n" }
例如:POST https://<nsx-mgr>/api/v1/trust-management/certificates/aaction/replace-host-certificate/8e84d532-2cd8-46d8-90c7-04862980f69c { "display_name": "cert_sample", "pem_encoded": "-----BEGIN CERTIFICATE-----\nMIIC1DCCAbygAwIBAgIUMd1fGNGnvYKtilon2UMBP4rqRAowDQYJKoZIhvcNAQEL\nBQAwDzENMAsGA1UEAwwETVlDQTAeFw0yMzA5MjYxODMxMzVaFw0zMzA5MjMxODMx\nMzVaMBYxFDASBgNVBAMMC2NlcnRfc2FtcGxlMIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEAzMDsp1EGFPjus/xnHmacPJYVP0N8iQMb3W8TFFQC5jxdjNzi\ncMIb1YgpI+s3LJoyYCdZKeMcCWDwtgQXMTy9FYJCHKyt86CF0br9U9q9iC+NX93X\n+/wrWtXY89ESt0NOgj22sKI49EQT9bd0dNWupxapCb98Dyztk0cetIHa7ia1q7un\nXMZ7dofwuWUEUlT8qpyXF84N6bhWQSrXRyeQ+oZrsq3sAyfnKzbfcs0T3sztWn9M\nR7h8iPkjpJjVV5z1ghAgIDKFXG8RVU8fLgX5srtYV2Ij1II0qYwe/yGBfj7xsemB\n2lGGPotlbwUE5oPFISJvG9qLOoNKVLvBrxuNnQIDAQABoyEwHzAdBgNVHSUEFjAU\nBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAAqPfZWNzG/b\nBhtN2gDjr0LplfC0yi8K6Ep3exECE5UOUJvHubko4Z6eCZFT8XSrAa6eZQEVe3O3\nwFvpdedCiEpI/IaFhpRUQDubJMPao7t4Uohz3k3ONMGbIci8dVUcQRQlmxFmx3wf\n0/33fy3b1zIOXqooQF3qUlpjms/RQOdD80dSlMze8WI7yz9LZt9Zc+sr8ePRi4Xy\ntudO6EYTiWm3CC5BxDDjKpkFCACFRT4zr5HsomHsFeo4hGIHl2zN0+JoGrdrWcta\nxdl5aQYy79vIMgvz696EKUGePEpJjpyP/wlwzmIY3RvXRKThuVXvg20gi365x8+J\niKbzpCGe0P0=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIC/zCCAeegAwIBAgIUUlHXcczsdMpei1ThgeQYpvgzaxMwDQYJKoZIhvcNAQEL\nBQAwDzENMAsGA1UEAwwETVlDQTAeFw0yMzA5MjYxODI2NDZaFw0zMzA5MjMxODI2\nNDZaMA8xDTALBgNVBAMMBE1ZQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQDbr78t32TUl1qTcDGvVQhiUkktntPO/5/FRDSIjy9qyNGDrcICDAYzOe79\nceXpOzfUStacEeTXse89q1MJz4ykaU2g6EUN2E4sfoP4KznBlObLHnnlxD482DL4\nbuMA8qCe0soUsGE6uoeFHnSW3M+NRI3GtJe1MM134JQ/TSNZTv+d93nB4bS2nSK7\nA1fFDRSuj8Ey7a1im8JgykL9ahJ6yxrpk8juEJwII04nHfAG102/8/YKEZyPWcPX\nYvLZEt/lBVxRPplWfbNIo3zfA09fzb4RMaOSsyBbqTBseL/4fxlnkeu1Rii3ZwcQ\nL4Wr6mKR1YCievsuXdLK5pWUH+BtAgMBAAGjUzBRMB0GA1UdDgQWBBTnYafa1EXn\nNPIqTkIO82kdamjDgTAfBgNVHSMEGDAWgBTnYafa1EXnNPIqTkIO82kdamjDgTAP\nBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQC2Ef+CPICTdWEKW3e6\nwaObe4Y85CS2wfSBRFvt0yCAUF8yysr3kQx85wdhfDfvidQdrgQIkDKe83J61r5l\n238wFo9O10RpFWl1csY4hZ19geeTW3L8tABp+f1or1vsAogfVtcaZwmqz/LEaZ0r\n4JdONE9gq40RgX5R9GPD04k3hKr6HoNHHnBssmNHgo8pLKRv04mx0yQyn45lKvet\ngcInI9j8YLsXGHdeiZ/zXKUgKQdicBw79K/mQCpgkpaEi3K9mFUFCUU9CiWxiy62\nSN2/SEuOWlb7Kq8VwJUfUn3lKoY9sofr9zsSsh5lhQOKb1uguo8xUF8v6iLuDAjr\n9bcn\n-----END CERTIFICATE-----\n", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAzMDsp1EGFPjus/xnHmacPJYVP0N8iQMb3W8TFFQC5jxdjNzi\ncMIb1YgpI+s3LJoyYCdZKeMcCWDwtgQXMTy9FYJCHKyt86CF0br9U9q9iC+NX93X\n+/wrWtXY89ESt0NOgj22sKI49EQT9bd0dNWupxapCb98Dyztk0cetIHa7ia1q7un\nXMZ7dofwuWUEUlT8qpyXF84N6bhWQSrXRyeQ+oZrsq3sAyfnKzbfcs0T3sztWn9M\nR7h8iPkjpJjVV5z1ghAgIDKFXG8RVU8fLgX5srtYV2Ij1II0qYwe/yGBfj7xsemB\n2lGGPotlbwUE5oPFISJvG9qLOoNKVLvBrxuNnQIDAQABAoIBAQCE8JH2xIWVYlbh\np3RwaaDxOWTMMY4PC2SxLegOX8mOIQ2AYv3mxjD6QDCt8I9fNzKT+ZhLuPhAIp/H\nHfrM7im6aFtycK90qfmYxbarFi/O10kMQGZ2ZjDkBkqZa1qigGHd8CHIp1shRX5M\nIHPNU9vVAsJ34Mq0s7AA2sFV46X4zyEqHKLi1qVcsj68XJCrKJPTzOXiZWOHL8e0\nx4B8mGKbnWNmrq6styyYi9rzUnucoKL459YkaF/MEBpou3wvhprkR5Ufr4eNo0YV\nr0KfcEjxZqVT2o6r59+gSZQiCHael2MgslvMUTJOPgZ8tO78RQIHpH8GnNo+QkzB\nvXDfH2zhAoGBAPbeM7OveieHL37Iu/xY2wtDagSBD5K0VJhP8OOF5G1t1nHNcyWa\nYa49hTmGJ7bQsw5oGccvvsXCgGzaNbbAQtKlcz9kiXKOpTWV3t+RXtp0IXp8MIG6\nvWYd7yey7FHumHS/wC0h/REwx10153UpYaFJe2QJHw4yG9BJgN7o4duVAoGBANRT\n6BMPqV/6P9kJtduU8sZOVv3BbyUIkoBZlw2O7LB1IjIZcEm4By9DEAqCkFMp4gST\nW6o2eyXKp0oZ1UwqKdESG2LrGePNrmbQp7LvMngyk7CDqczA5gmnlndCy27k/d1Y\nQuWz+WDrqc8EAD7wRBmrwR0p3zCntPFRJPVu+yfpAoGACkDcYOAu8KlavadUt3xx\nTJx2MM2zeeJniRP461pKTIk9WOixmaQ53mTLvcHmsF8msLh+KZnAELKtZtgBVx/R\nJrKcgMuKMenezsT0xtBg4i3knhO+aAT7jNw9bKavzg9c4ax9LOK2ghpGjYaJoIIh\nffNxXoxKb+qA4TvMUHXXu6kCgYAhGeefORzVqqTTiDECx4jFo6bqLoLOSjTUr6Ld\n6T87DzfCiba4t2jfVFwm1036uRfUUMjEk3PFY3+LDNX05snYHzOHy1Eg84rR2oua\nWLIMjQ37QbtyAUybirXpZ89hPW/aVw0u1Ez3cCXr8Rq8tSZYvi8ABewWoL6TtGvH\nm4KqKQKBgCfZrv6wpCrS5Ep/AKQGdPOXCOM8O2+b4e/NJpSIH9Zk5Elg6WAunlCp\ntHyx1pZFq5RboxFw7DsM9eUTakHvGtTJ+EFHbyc5tKqWKnVbGmDYR6pNRULPEXU9\nhBQ1pzzmwGnO6AyxTxgoY5CosK2Ga1KjsWUXqay2QwIln+E+xxsm\n-----END RSA PRIVATE KEY-----\n" }
将传输节点的 ID 用作 node_id,而不是使用 Unified Appliance (UA) ID。要查找您的节点 ID,请参阅 查找证书 API 调用的节点 ID。有关系统配置的默认自签名证书的详细令牌,或有关 VMware Cloud Foundation 证书要求,请参阅证书类型。
- 要替换来自联合 NSX 部署中其他位置的证书,请查找名称以“站点”一词开头的证书;例如,站点证书 L=PA,ST=CA,C=US、站点证书 UID=369cd66c-...,或者仅使用其 UUID 637a2ebf-84d1-4548-a0ba-51d9420672ff。如果这些证书即将过期,请记得在源节点或集群上执行替换。您可以在 UI 的使用位置列下或在 API 的使用者字段中找到该信息。如果替换任何源全局管理器或本地管理器上的证书,系统会自动在整个联合部署中同步这些证书。
- 要移除不再需要的未使用证书,可以使用 UI 或 API。如果“证书”窗格的“使用位置”列中的数据为零,则表示证书未被使用,可以使用删除按钮将其移除。如果 API 命令输出的使用者详细信息中的数据为零,则表示证书未被使用,可以使用“API 系统管理”>“设置”>“证书”>“证书删除”命令将其移除。