您可以修改 NSX Manager 集群的 API 服务属性,例如 TLS 协议版本、密码套件等。

从 4.2 开始,TLS 1.1 密码默认处于停用状态,但用户可使用以下过程将其激活。TLS 1.1 支持的密码包括:
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA
TLS 1.2 支持的密码包括:
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS 1.3 支持的密码包括:
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(从 NSX 4.2 开始支持)

以下过程说明了运行 NSX API 服务调用以激活 TLS 1.1 协议,以及激活或停用 API 服务配置中的密码套件的工作流。默认情况下,TLS 1.1 处于停用状态。您可以使用此相同过程根据需要停用其他 TLS 版本。请注意,NSX 支持最低和最高版本,因此支持 TLS 1.1 和 TLS 1.3,但不支持 TLS 1.2。例如,可以支持 TLS 1.1 和 TLS 1.2 或 TLS 1.2 和 TLS 1.3。

有关 NSX API 服务的 API 架构、示例请求、示例响应和错误消息的详细信息,请阅读NSX API 指南

过程

  1. 运行以下 GET API 以读取 NSX API 服务的配置:
    GET https://<NSX-Manager-IP>/api/v1/cluster/api-service
    API 响应包含密码套件和 TLS 协议的列表。请注意,未列出 TLS 1.0 支持。
    curl -u admin:${PASSWORD} -i -k https://$IP/api/v1/cluster/api-service  "protocol_versions" : [ {
        "name" : "TLSv1.1",
        "enabled" : false
      }, {
        "name" : "TLSv1.2",
        "enabled" : true
      }, {
        "name" : "TLSv1.3",
        "enabled" : true
      } ],

  2. curl -u admin:${PASSWORD} -i -k https://$IP/api/v1/cluster/api-service
    {
      "global_api_concurrency_limit": 199,
      "client_api_rate_limit": 100,
      "client_api_concurrency_limit": 40,
      "connection_timeout": 30,
      "redirect_host": "",
      "cipher_suites": [
        {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"},
        {"enabled": true, "name": "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"},
        {"enabled": true, "name": "TLS_RSA_WITH_AES_256_GCM_SHA384"},
        {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"},
        {"enabled": true, "name": "TLS_RSA_WITH_AES_128_GCM_SHA256"}
        {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384}",
        {"enabled": true, "name": "TLS_RSA_WITH_AES_256_CBC_SHA256"},
        {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"},
        {"enabled": true, "name": "TLS_RSA_WITH_AES_256_CBC_SHA"},
        {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"},
        {"enabled": true, "name": "TLS_RSA_WITH_AES_128_CBC_SHA256"},
        {"enabled": false, "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"},
        {"enabled": false, "name": "TLS_RSA_WITH_AES_128_CBC_SHA"}
        {"enabled": false, "name": "TLS_RSA_WITH_AES_128_CBC_SHA"}         
      ],
      "protocol_versions": [
        {"enabled": false, "name": "TLSv1.1"},
        {"enabled": true, "name": "TLSv1.2"}
        {"enabled": true, "name": "TLSv1.3"}]
    }
  3. 激活或停用 TLS 1.1 协议。
    1. 要激活 TLS 版本,例如可将 TLSv1.1 设置为 enabled = true。要停用 TLS 版本,请将 TLS 版本设置为 enabled = false
    2. 运行以下 PUT API 以将所做的更改发送到 NSX API 服务器:
      PUT https://<NSX-Manager-IP>/api/v1/cluster/api-service
  4. 激活或停用密码套件。
    1. 根据要求将一个或多个密码名称设置为 enabled = trueenabled = false
    2. 运行以下 PUT API 以将所做的更改发送到 NSX API 服务器:
      PUT https://<NSX-Manager-IP>/api/v1/cluster/api-service
  5. 确认激活已完成。

结果

在使用 API 更新 API 服务后,每个 NSX Manager 节点上的 API 服务都将重新启动。从完成 API 调用到新配置生效可能最多出现 1 分钟的延迟。API 服务配置中的更改将应用于 NSX Manager 集群中的所有节点。