主管 使用 TLS 在 主管 與 NSX 之間進行通訊。如果已部署具有 NSX 網路堆疊的 主管,則可能需要輪替各種 NSX 憑證。

主管 使用的 NSX 憑證

具有 NSX 的 WCP 使用兩個憑證與 NSX 整合:
  • NSX 負載平衡器憑證和金鑰
  • NSX Manager 憑證和金鑰
如需有關這些憑證的詳細資訊,請參閱 《NSX 管理指南》中的 〈用於 NSX 聯盟的憑證〉
備註: 本主題中的資訊基於 NSX v3.2。

輪替 NSX 負載平衡器憑證和金鑰

您可以在 主管 > 憑證 > NSX 負載平衡器畫面上輪替 NSX 負載平衡器 TLS 憑證和金鑰。
  • 選取動作 > 產生 CSR 以產生憑證。
  • 選取動作 > 取代憑證以更新憑證和金鑰。

為每個 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 憑證來輪替憑證。

  1. 若要輪替 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
  2. 使用 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
    
  3. 執行命令後,確認您看到以下輸出。
    Generating a 2048 bit RSA private key
    ...............+++
    ................+++
    writing new private key to 'nsx-mgr-01.key'
    
  4. 您應看到 3 個檔案:初始簽署要求、執行簽署要求產生的憑證和私密金鑰。
  5. 執行以下命令以驗證憑證和私密金鑰。
    openssl x509 -in nsx-mgr-01.crt -text -noout
  6. 如果使用多節點 NSX 管理叢集,請對每個 NSX Manager 節點重複此程序。相應地變更憑證簽署要求中的 IP 位址和 FQDN 以及輸出檔案名稱。

將 SSL 憑證和私密金鑰匯入 NSX-T 管理主控台中

完成以下步驟,將每個 NSX Manager 節點憑證和私密金鑰匯入 NSX 中。如果將 nsx.crtnsx.key 檔案儲存在本機,則可以將其上傳到 NSX,也可以複製/貼上內容。
  1. 登入 NSX 管理主控台,然後導覽到系統 > 憑證頁面。
  2. 按一下匯入 > 匯入憑證
    備註: 由於您產生了自我簽署憑證,請務必選取 匯入憑證,而不是 匯入 CA 憑證
  3. 為憑證和金鑰配對輸入描述性名稱,例如 nsx-mgr-01-cert-and-key
  4. 瀏覽並選取憑證檔案,或者複製/貼上其內容,包括標頭和註腳。

    例如:

    -----BEGIN CERTIFICATE-----
    MIID+zCCAuOgAwIBAgIUCfXaWxNwXvrEFQbt+Dvvp9C/UkIwDQYJKoZIhvcNAQEL
    BQAwVTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExCzAJBgNVBAcM
    ...
    FGlnyT4vxpa2TxvXNTCuXPV9z0VtVBF2QpUJluGH7W1i2wUnApCCXhItcBkfve0f
    pCi9YoRoUT8fuMBYo7sL
    -----END CERTIFICATE-----
  5. 瀏覽並選取金鑰,或者複製/貼上其內容,包括標頭和註腳。

    例如:

    -----BEGIN PRIVATE KEY-----
    MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5GNlUSYHa1p+E
    XuOGAsIgiFxUnerRYNm2ARMqRb/xKK6R4xgZhBmpmikpE90vQibvouHqnL13owq7
    ...
    OzbnwMCUI2TeY1iJNx3HNKUrdLvrr8CMh7Looe0L4/2j7ygew2x2C5m272SCJYs/
    ly+bOXEYaH4/ORHbvvr0jQ==
    -----END PRIVATE KEY-----
  6. 服務憑證選項選取
  7. 輸入憑證和金鑰配對的說明,例如 Cert and Private Key for NSX Manager Node 1
  8. 按一下匯入
  9. 對每個 NSX Manager 憑證和金鑰配對重複此程序。

使用 NSX API 登錄 NSX Manager 憑證

將憑證和金鑰上傳到 NSX Manager 後,使用 NSX API 進行登錄。另請參閱 《NSX 管理指南》中的 〈匯入和取代憑證〉
  1. 在 NSX Manager 中,選取系統 > 憑證
  2. 在識別碼資料行中,選取要登錄的憑證的識別碼,然後複製快顯視窗中的憑證識別碼。
  3. 執行以下 API 呼叫以列出憑證。取得要更新的每個憑證的憑證節點識別碼。
    GET https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates
  4. 執行以下 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
  5. 執行以下 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
  6. 如果使用多節點 NSX 管理叢集,請對每個 NSX Manager 節點重複憑證取代程序。
  7. 完成後,刪除您取代的每個已到期的憑證。您可以使用 NSX Manager 介面或 NSX API 執行此作業。
    例如:
    https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>