您可以使用 CLI 將 VMCA 根憑證取代為憑證鏈結中包含 VMCA 的第三方 CA 簽署憑證。然後,VMCA 產生的所有憑證都會包含完整鏈結。您可以將現有憑證取代為新產生的憑證。
如果您使用 VMCA 做為中繼 CA 或使用自訂憑證,可能會遇到非常複雜的問題,且可能對安全性產生負面影響,並且增加不必要的運作風險。如需有關在 vSphere 環境中管理憑證的詳細資訊,請參閱標題為〈新產品逐步解說 - 混合 vSphere SSL 憑證取代〉的部落格文章,網址為:http://vmware.com/go/hybridvmca。
使用 CLI 取代根憑證 (中繼 CA)
將 VMCA 憑證取代為自訂憑證的第一個步驟,是產生 CSR 並傳送此 CSR 進行簽署。然後,使用 CLI 將簽署憑證作為根憑證新增到 VMCA。
您可以使用 Certificate Manager 公用程式或其他工具來產生 CSR。CSR 必須符合以下需求:
- 金鑰大小:2048 位元 (下限) 至 8192 位元 (上限) (PEM 編碼)
- PEM 格式。VMware 支援 PKCS8 和 PKCS1 (RSA 金鑰)。金鑰新增到 VECS 之後,會轉換為 PKCS8。
- x509 第 3 版
- 對於根憑證,CA 延伸必須設為 true,憑證簽署必須位於需求清單中。例如:
basicConstraints = critical,CA:true keyUsage = critical,digitalSignature,keyCertSign
- 必須啟用 CRL 簽署。
- [延伸金鑰使用方法] 可以為空白或包含伺服器驗證。
- 對憑證鏈結的長度無明確限制。VMCA 預設使用 OpenSSL (為 10 個憑證)。
- 不支援含萬用字元或多個 DNS 名稱的憑證。
- 您無法建立 VMCA 的附屬 CA。
如需使用 Microsoft 憑證授權機構的範例,請參閱 VMware 知識庫文章:Creating a Microsoft Certificate Authority Template for SSL certificate creation in vSphere 6.x (在 vSphere 6.x 中建立 Microsoft 憑證授權機構範本以建立 SSL 憑證),網址為 https://kb.vmware.com/s/article/2112009。
- 金鑰大小:2048 位元 (下限) 至 8192 位元 (上限)。
- 金鑰使用方式:憑證簽署
- 基本限制:主體類型 CA
程序
範例: 取代根憑證
使用具有 --rootca 選項的 certool 命令,將 VMCA 根憑證取代為自訂 CA 根憑證。
/usr/lib/vmware-vmca/bin/certool --rootca --cert=<path>/root.pem -–privkey=<path>/root.key
- 將新的自訂根憑證新增到檔案系統中的憑證位置。
- 將自訂根憑證附加到 VECS 中的 TRUSTED_ROOTS 存放區。
- 將自訂根憑證新增到 vmdir。
下一步
如果公司原則需要,您可以從憑證存放區移除原始的 VMCA 根憑證。如果您這麼做,必須取代 vCenter Single Sign-On 簽署憑證。請參閱使用命令列取代 vCenter Server STS 憑證。
使用 CLI 取代機器 SSL 憑證 (中繼 CA)
從 CA 收到簽署憑證後,您可以使用 CLI 將其設定為 VMCA 根憑證並取代所有機器 SSL 憑證。
這些步驟與取代使用 VMCA 做為憑證授權機構之憑證的步驟基本相同。不過,在此情況下,VMCA 會簽署所有具有完整鏈結的憑證。
每台機器必須具有機器 SSL 憑證,以便與其他服務進行安全通訊。在增強型連結模式組態中連線多個 vCenter Server 執行個體時,必須在每個節點上執行機器 SSL 憑證產生命令。
必要條件
對於每個機器 SSL 憑證,SubjectAltName 必須包含 DNS Name=<Machine FQDN>。
程序
範例: 取代機器 SSL 憑證 (VMCA 為中繼 CA)
- 為 SSL 憑證建立組態檔,命名為 ssl-config.cfg 並儲存於當前目錄中。
Country = US Name = vmca-<FQDN-example> Organization = VMware OrgUnit = VMware Engineering State = California Locality = Palo Alto Hostname = <FQDN>
- 為機器 SSL 憑證產生金鑰配對。在增強型連結模式組態中連線的多個 vCenter Server 執行個體的部署中,請在每個 vCenter Server 節點上執行此命令。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
ssl-key.priv 和 ssl-key.pub 檔案會在當前目錄中建立。
- 產生新的機器 SSL 憑證。此憑證是由 VMCA 簽署的。如果您將 VMCA 根憑證取代為自訂憑證,VMCA 會簽署所有具有完整鏈結的憑證。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg
new-vmca-ssl.crt 檔案會在當前目錄中建立。
- (選用) 列出 VECS 的內容。
/usr/lib/vmware-vmafd/bin/vecs-cli store list
- vCenter Server 的輸出範例:
output (on vCenter): MACHINE_SSL_CERT TRUSTED_ROOTS TRUSTED_ROOT_CRLS machine vsphere-webclient vpxd vpxd-extension hvc data-encipherment APPLMGMT_PASSWORD SMS wcp KMS_ENCRYPTION
- vCenter Server 的輸出範例:
- 將 VECS 中的機器 SSL 憑證取代為新的機器 SSL 憑證。--store 和 --alias 值必須與預設名稱完全相符。
- 在每個 vCenter Server 上,執行下列命令以更新 MACHINE_SSL_CERT 存放區中的機器 SSL 憑證。您必須為每台機器個別更新憑證,因為每台機器的 FQDN 都不相同。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv
- 在每個 vCenter Server 上,執行下列命令以更新 MACHINE_SSL_CERT 存放區中的機器 SSL 憑證。您必須為每台機器個別更新憑證,因為每台機器的 FQDN 都不相同。
使用 CLI 取代解決方案使用者憑證 (中繼 CA)
取代機器 SSL 憑證後,可以使用 CLI 取代解決方案使用者憑證。
- 這些憑證位於 Proxy 後方,或屬於自訂憑證。
- 不使用任何中繼 CA。
可以取代機器解決方案使用者憑證以及每個 vCenter Server 系統上的解決方案使用者憑證。
必要條件
每個解決方案使用者憑證必須具有不同的 Subject。例如,您可以考慮加入解決方案使用者名稱 (例如 vpxd) 或其他唯一識別碼。
程序
範例: 取代解決方案使用者憑證 (中繼 CA)
- 在增強型連結模式組態中,針對每個 vCenter Server 節點上的每個解決方案使用者產生公開/私密金鑰配對。其中包括機器解決方案的配對,以及每個其他解決方案使用者 (vpxd、vpxd-extension、vsphere-webclient、wcp) 的配對。
- 為機器解決方案使用者產生金鑰配對。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
- 為每個節點上的 vpxd 解決方案使用者產生金鑰配對。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
- 為每個節點上的 vpxd-extension 解決方案使用者產生金鑰配對。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
- 為每個節點上的 vsphere-webclient 解決方案使用者產生金鑰配對。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
- 為每個節點上的 wcp 解決方案使用者產生金鑰配對。
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=wcp-key.priv --pubkey=wcp-key.pub
- 為機器解決方案使用者產生金鑰配對。
- 為機器解決方案使用者以及每個 vCenter Server 節點上的每個其他解決方案使用者 (vpxd、vpxd-extension、vsphere-webclient、wcp),產生由新 VMCA 根憑證簽署的解決方案使用者憑證。
備註: --Name 參數必須是唯一的。包含解決方案使用者存放區的名稱,可讓您輕鬆辨識憑證與解決方案使用者之間的對應關係。在每種情況下,範例皆包含名稱,例如 vpxd或 vpxd-extension。
- 建立 /usr/lib/vmware-vmca/share/config/certool.cfg 檔案的一個複本,然後根據需要修改或移除名稱、IP 位址、DNS 名稱和電子郵件地址欄位,並將該檔案重新命名為類似於 sol_usr.cfg 的名稱。
- 為每個節點上的機器解決方案使用者產生憑證。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine --config sol_usr.cfg
- 為每個節點上的 vpxd 解決方案使用者產生憑證。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd --config sol_usr.cfg
- 為每個節點上的 vpxd-extensions 解決方案使用者產生憑證。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension --config sol_usr.cfg
- 執行下列命令,為每個節點上的 vsphere-webclient 解決方案使用者產生憑證。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient --config sol_usr.cfg
- 透過執行下列命令,為每個節點上的 wcp 解決方案用戶產生憑證。
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-wcp.crt --privkey=wcp-key.priv --Name=wcp --config sol_usr.cfg
- 將 VECS 中的解決方案使用者憑證取代為新的解決方案使用者憑證。
備註: --store 和 --alias 參數必須與預設服務名稱完全相符。
- 取代每個節點上的機器解決方案使用者憑證:
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store machine --alias machine /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store machine --alias machine --cert new-machine.crt --key machine-key.priv
- 取代每個節點上的 vpxd 解決方案使用者憑證。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd --alias vpxd /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd --alias vpxd --cert new-vpxd.crt --key vpxd-key.priv
- 取代每個節點上的 vpxd-extension 解決方案使用者憑證。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd-extension --alias vpxd-extension /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd-extension --alias vpxd-extension --cert new-vpxd-extension.crt --key vpxd-extension-key.priv
- 取代每個節點上的 vsphere-webclient 解決方案使用者憑證。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vsphere-webclient --alias vsphere-webclient /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vsphere-webclient --alias vsphere-webclient --cert new-vsphere-webclient.crt --key vsphere-webclient-key.priv
- 取代每個節點上的 wcp 解決方案使用者憑證。
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store wcp --alias wcp /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store wcp --alias wcp --cert new-wcp.crt --key wcp-key.priv
- 取代每個節點上的機器解決方案使用者憑證:
- 使用新的解決方案使用者憑證更新 VMware Directory Service (vmdir)。系統會提示您輸入 vCenter Single Sign-On 管理員密碼。
- 執行 /usr/lib/vmware-vmafd/bin/dir-cli service list,為每個解決方案使用者取得唯一的服務識別碼尾碼。在 vCenter Server 系統上執行此命令。
/usr/lib/vmware-vmafd/bin/dir-cli service list output: 1. machine-623bef28-0311-436e-b21f-6e0d39aa5179 2. vsphere-webclient-623bef28-0311-436e-b21f-6e0d39aa5179 3. vpxd-623bef28-0311-436e-b21f-6e0d39aa5179 4. vpxd-extension-623bef28-0311-436e-b21f-6e0d39aa5179 5. hvc-623bef28-0311-436e-b21f-6e0d39aa5179 6. wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e
備註: 當您列出大型部署中的解決方案使用者憑證時, /usr/lib/vmware-vmafd/bin/dir-cli list 的輸出會包含所有節點上的所有解決方案使用者。請執行 /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost 以找出每台主機的本機機器識別碼。每個解決方案使用者名稱都包含機器識別碼。 - 取代每個 vCenter Server 節點上 vmdir 中的機器憑證。例如,如果 machine-6fd7f140-60a9-11e4-9e28-005056895a69 是 vCenter Server 上的機器解決方案使用者,請執行此命令:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine.crt
- 取代每個節點上 vmdir 中的 vpxd 解決方案使用者憑證。例如,如果 vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 是 vpxd 解決方案使用者識別碼,請執行此命令:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
- 取代每個節點上 vmdir 中的 vpxd-extension 解決方案使用者憑證。例如,如果 vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 是 vpxd-extension 解決方案使用者識別碼,請執行此命令:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
- 取代每個節點上的 vsphere-webclient 解決方案使用者憑證。例如,如果 vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 是 vsphere-webclient 解決方案使用者識別碼,請執行此命令:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt
- 取代每個節點上的 wcp 解決方案使用者憑證。例如,如果 wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e 是 wcp 解決方案使用者識別碼,請執行此命令:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e --cert new-wcp.crt
- 執行 /usr/lib/vmware-vmafd/bin/dir-cli service list,為每個解決方案使用者取得唯一的服務識別碼尾碼。在 vCenter Server 系統上執行此命令。