產生新的 VMCA 簽署根憑證後,您可以取代環境中的所有機器 SSL 憑證。

每台機器必須具有機器 SSL 憑證,以便與其他服務進行安全通訊。在多節點部署中,您必須在每個節點上執行機器 SSL 憑證產生命令。使用 --server 參數從含外部 Platform Services ControllervCenter Server 指向 Platform Services Controller

必要條件

準備好停止所有服務,並啟動處理憑證傳播和儲存的服務。

程序

  1. 為每部需要新憑證的機器製作一份 certool.cfg 的複本。
    您可以在以下位置找到 certool.cfg
    作業系統 路徑
    Windows C:\Program Files\VMware\vCenter Server\vmcad
    Linux /usr/lib/vmware-vmca/share/config/
  2. 編輯每台機器的自訂組態檔以納入該機器的 FDQN。
    按照機器的 IP 位址執行 NSLookup,以查看 DNS 的名稱清單,然後在檔案中為 [主機名稱] 欄位使用該名稱。
  3. 為每個檔案產生公開/私密金鑰檔案配對和憑證,並於您先前自訂的組態檔中傳遞。
    例如:
    certool --genkey --privkey=machine1.priv --pubkey=machine1.pub
    certool --gencert --privkey=machine1.priv --cert machine1.crt --Name=Machine1_Cert --config machine1.cfg
  4. 停止所有服務,並啟動處理憑證建立、傳播和儲存的服務。
    Windows 和 vCenter Server Appliance 上的服務名稱並不相同。
    備註: 如果您的環境使用外部 Platform Services Controller,則無需在 vCenter Server 節點上停止和啟動 VMware 目錄服務 (vmdird) 和 VMware Certificate Authority (vmcad)。這些服務將在 Platform Services Controller 上執行。
    Windows
    service-control --stop --all
    service-control --start VMWareAfdService
    service-control --start VMWareDirectoryService
    service-control --start VMWareCertificateService
    
    vCenter Server Appliance
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. 新增憑證到 VECS。
    所有機器都需要使用本機憑證存放區中的新憑證,以透過 SSL 進行通訊。您需要先刪除現有項目,接著再新增項目。
    vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT  
    vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert machine1.cert
    --key machine1.priv
  6. 重新啟動所有服務。
    service-control --start --all
    

範例: 將機器憑證取代為 VMCA 簽署憑證

  1. 為 SSL 憑證建立組態檔,命名為 ssl-config.cfg 並儲存於當前目錄中。
    Country = US
    Name = vmca-<PSC-FQDN-example>
    Organization = <my_company>
    OrgUnit = <my_company Engineering>
    State = <my_state> 
    Locality = <mytown>
    Hostname = <FQDN>
  2. 為機器 SSL 憑證產生金鑰配對。請在每個管理節點和 Platform Services Controller 節點上執行此命令;不需要使用 --server 選項。
    C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
    

    ssl-key.privssl-key.pub 檔案會在當前目錄中建立。

  3. 產生新的機器 SSL 憑證。此憑證是由 VMCA 簽署的。如果您將 VMCA 根憑證取代為自訂憑證,VMCA 會簽署所有具有完整鏈結的憑證。
    • Platform Services Controller 節點或內嵌式安裝中:
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg
    • vCenter Server (外部安裝) 上:
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg --server=<psc-ip-or-fqdn>

    new-vmca-ssl.crt 檔案會在當前目錄中建立。

  4. (選用) 列出 VECS 的內容。
    "C:\Program Files\VMware\vCenter Server\vmafdd\" vecs-cli store list
    • Platform Services Controller 的輸出範例:
      MACHINE_SSL_CERT
      TRUSTED_ROOTS
      TRUSTED_ROOT_CRLS
      machine
    • vCenter Server 的輸出範例:
      output (on vCenter):
      MACHINE_SSL_CERT
      TRUSTED_ROOTS
      TRUSTED_ROOT_CRLS
      machine
      vpxd
      vpxd-extension
      vsphere-webclient
      sms
  5. 將 VECS 中的機器 SSL 憑證取代為新的機器 SSL 憑證。--store--alias 值必須與預設名稱完全相符。
    • Platform Services Controller 上,執行下列命令以更新 MACHINE_SSL_CERT 存放區中的機器 SSL 憑證。
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv
      
    • 在每個管理節點或內嵌式部署中,執行下列命令以更新 MACHINE_SSL_CERT 存放區中的機器 SSL 憑證。您必須為每台機器個別更新憑證,因為每台機器的 FQDN 都不相同。
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv
      

下一步

您也可以取代 ESXi 主機的憑證。請參閱 vSphere 安全性出版物。

在多節點部署中取代根憑證之後,您必須在含外部 Platform Services Controller 節點的所有 vCenter Server 上重新啟動服務。