從 vSphere 8.0 開始,您可以將 Auto Deploy 伺服器設定為使用第三方憑證授權機構 (CA) 或您自己的內部 CA 簽署的自訂憑證佈建 ESXi 主機。依預設,Auto Deploy 伺服器會使用 VMware Certificate Authority (VMCA) 簽署的憑證佈建 ESXi 主機。

在 vSphere 8.0 之前,使用 Auto Deploy 管理憑證的選項包括:

  • 使用 vCenter Server 和內建 VMware Certificate Authority (預設)。
  • 將 Auto Deploy 設為第三方 CA 的下層 CA。在這種情況下,Auto Deploy SSL 金鑰會對憑證進行簽署。

從 vSphere 8.0 開始,您可以將第三方 CA 或您自己的內部 CA 簽署的自訂憑證上傳到 Auto Deploy。Auto Deploy 將自訂憑證與 ESXi 主機的 MAC 位址或 BIOS UUID 相關聯。每次 Auto Deploy 主機啟動時,Auto Deploy 都會檢查自訂憑證。如果 Auto Deploy 找到自訂憑證,則將使用該憑證,而不是透過 VMCA 產生一個憑證。

此工作的高層級步驟包括:

  1. 為第三方 CA 或您自己的內部 CA 產生自訂憑證請求。
  2. 取得簽署的自訂憑證 (金鑰和憑證) 並將其儲存在本機。
  3. 如果使用的是第三方 CA,並且之前未曾使用,請確保將 CA 的根憑證上傳到 vCenter Server 上的 TRUSTED_ROOTS 存放區。
  4. 將自訂憑證上傳到 Auto Deploy 並將憑證與 ESXi 主機的 MAC 位址或 BIOS UUID 相關聯。
  5. ESXi 主機開機。

將自訂憑證指派給 ESXi 主機時,Auto Deploy 會在下次從 Auto Deploy 開機時將該憑證推送到主機。

使用自訂憑證和 Auto Deploy 時,請注意以下考量事項。

  • 您必須使用 PowerCLI Add-CustomCertificateRemove-CustomCertificateList-CustomCertificate cmdlet 來管理與 Auto Deploy 一起使用的自訂憑證。管理自訂憑證的功能在 vSphere Client 中不可用。
  • 若要重新整理用於 Auto Deploy 的自訂憑證,必須再次執行 Add-CustomCertificate cmdlet。
  • 請務必檢查自訂憑證是否存在潛在錯誤。Auto Deploy 僅驗證自訂憑證是否符合 X.509 憑證標準,以及憑證的到期臨界值是否設定為至少 240 天。Auto Deploy 不會執行任何其他憑證驗證或檢查。若要變更憑證臨界值,可以執行 Set-DeployOption -Key certificate-refresh-threshold cmdlet。
  • 如果稍後使用 Remove-CustomCertificate cmdlet 從 ESXi 主機中移除自訂憑證,必須重新啟動該主機才能使變更生效。

如需有關自訂憑證和 Auto Deploy 的詳細資訊,請參閱 VMware ESXi 安裝和設定說明文件。

必要條件

確保您具有以下內容:
  • 向憑證授權機構要求憑證。憑證必須符合這些需求。
    • 金鑰大小:2048 位元 (下限) 至 16384 位元 (上限) (PEM 編碼)
    • PEM 格式。VMware 支援 PKCS8 和 PKCS1 (RSA 金鑰)。金鑰新增到 VECS 之後,會轉換為 PKCS8。
    • x509 第 3 版
    • CRT 格式
    • 設定為 true 的 CA 延伸
    • 憑證簽署的金鑰使用方法
    • 某天的開始時間早於目前時間
  • ESXi 主機 MAC 位址或 BIOS UUID。評估哪種方法最適合您的環境。BIOS UUID 比 MAC 位址更穩定,更不受變更的影響。如果變更 ESXi 主機中的網路介面卡,MAC 位址將發生變更。但是,MAC 位址可能更易於使用,並且比 BIOS UUID 更易於取得。
  • 至少為 PowerCLI 版本 12.6.0。如需有關 Auto Deploy PowerCLI cmdlet 的詳細資訊,請參閱 VMware ESXi 安裝和設定說明文件中的「Auto Deploy PowerCLI Cmdlet 概觀」主題。

確保您具有下列權限:

  • 新增自訂憑證:Autodeploy.規則.建立
  • 取得自訂憑證資訊:系統.讀取

程序

  1. 產生憑證請求。
    1. 使用之前列出的憑證請求需求,建立組態檔 (.cfg)。
    2. 若要產生 CSR 檔案和金鑰檔案,請執行 openssl req 命令,同時傳入組態檔 (.cfg)。
      例如:
      openssl req -new -config custom_cert.cfg -days 4200 -sha256 -keyout rui.key -out rui.csr

      在該命令中:

      • -new 產生新的憑證請求。
      • -config custom_cert.cfg 指定自訂 .cfg 檔案。
      • -days 4200 指定憑證認證時間為 4200 天。
      • -sha256 指定簽署請求所需的訊息摘要。
      • -keyout rui.key 指定要將新建立的私密金鑰寫入的檔案。
      • -out rui.csr 指定要寫入的輸出檔案。
  2. 將憑證請求傳送給第三方 CA,或者,如果您為自己的憑證簽署,請執行 openssl x509 -req 命令,從 rui.csr 檔案產生自訂憑證。
    例如:
    openssl x509 -req -in rui.csr -CA "/etc/vmware-rbd/ssl/rbd-ca.crt" -CAkey \
    "/etc/vmware-rbd/ssl/rbd-ca.key" -extfile \
    openssl.cfg -extensions x509 -CAserial "/etc/vmware-rbd/ssl/rbd-ca.srl" -days \
    4200 -sha256 -out signed_rui.crt
    

    在該命令中:

    • -in rui.csr 指定輸入檔案。
    • -CA "/etc/vmware-rbd/ssl/rbd-ca.crt" 指定用於伺服器憑證驗證的目錄。
    • -CAkey "/etc/vmware-rbd/ssl/rbd-ca.key" 設定用於簽署憑證的 CA 私密金鑰。
    • -extfile openssl.cfg 指定要從中讀取憑證延伸的其他可選組態檔。
    • -extensions x509 指定使用 x509 憑證延伸。
    • -CAserial "/etc/vmware-rbd/ssl/rbd-ca.srl" 使用 rbd-ca.srl 中的序號對憑證進行簽署。
    • -days 4200 指定憑證認證時間為 4200 天。
    • -sha256 指定簽署請求所需的訊息摘要。
    • -out signed_rui.crt 指定要寫入的輸出檔案。
  3. (選擇性) 如果之前未將簽署憑證授權機構的憑證上傳到 VMware Endpoint 憑證存放區 (VECS) 內的 TRUSTED_ROOTS 存放區,請在執行 Auto Deploy 服務的 vCenter Server 上執行以下步驟。
    1. 使用 WinSCP 等工具將憑證複製到 vCenter Server
    2. 使用 SSH 登入 vCenter Server 並執行以下命令。
      /usr/lib/vmware-vmafd/bin/dir-cli trustedcert publish --cert path_to_ca_certificate
  4. 取得 ESXi 主機 MAC 位址或 BIOS UUID。
  5. 執行以下步驟將自訂憑證新增到 Auto Deploy。
    1. 若要連線到 vCenter Server,請執行 Connect-VIServer cmdlet。
      Connect-VIServer -server VC_ip_address -User administrator_user -Password 'password'
    2. (選擇性) 若要檢視現有的自訂憑證,請執行 Get-CustomCertificates cmdlet。
      首次新增自訂憑證時,不會看到此 cmdlet 傳回的任何憑證。
    3. 若要將自訂憑證與 ESXi 主機關聯,請執行 Add-CustomCertificate cmdlet。
      Add-CustomCertificate -HostID [MAC_Address | BIOS_UUID] -Certificate "path_to_custom_cert" -Key "path_to_custom_cert_key"
      您可以指定主機的 MAC 位址或 BIOS UUID。Auto Deploy 將自訂憑證上傳到主機。
    4. 若要驗證憑證是否已上傳,請執行 Get-CustomCertificates cmdlet。
      您會看到類似下列內容的輸出:
      Name:     CustomHostCert-1
      CertificateId:      1
      HostId:             02:08:b0:8e:18:a2
      ExpirationTime: 1   2/28/2033 10:45:50 AM
      TimeCreated:        9/29/2022 7:40:28 AM
      LastModified:       9/29/2022 7:40:28 AM
      AssociatedHostName: 
      AssociatedHostName 目前為空。啟動主機後,輸出將反映與自訂憑證關聯的 ESXi 主機的名稱。
  6. 啟動 ESXi 主機。
  7. 若要驗證自訂憑證是否與 vCenter Server 相關聯,請再次執行 Get-CustomCertificates cmdlet。
    您會看到類似下列內容的輸出。
    Name:     CustomHostCert-1
    CertificateId:      1
    HostId:             02:08:b0:8e:18:a2
    ExpirationTime: 1   2/28/2033 10:45:50 AM
    TimeCreated:        9/29/2022 7:40:28 AM
    LastModified:       9/29/2022 7:40:28 AM
    AssociatedHostName: host1.example.com
    現在, AssociatedHostName 包含 ESXi 主機的名稱。