È possibile utilizzare la CLI per sostituire il certificato root VMCA con un certificato firmato da un'autorità di certificazione di terze parti che includa VMCA nella catena di certificati. In seguito, tutti i certificati generati da VMCA includono l'intera catena. È possibile sostituire i certificati esistenti con certificati appena generati.
Se si utilizza VMCA come autorità di certificazione intermedia o si utilizzano certificati personalizzati, si potrebbe riscontrare una significativa complessità, un potenziale impatto negativo sulla sicurezza e un aumento non necessario del rischio operativo. Per ulteriori informazioni sulla gestione dei certificati in un ambiente vSphere, vedere il post del blog intitolato New Product Walkthrough - Hybrid vSphere SSL Certificate Replacement all'indirizzo http://vmware.com/go/hybridvmca.
Sostituzione del certificato root (autorità di certificazione intermedia) tramite la CLI
Il primo passaggio nella sostituzione dei certificati VMCA con certificati personalizzati consiste nella generazione di una richiesta CSR e nell'invio di questa richiesta CSR per la firma. Utilizzare quindi la CLI per aggiungere il certificato firmato in VMCA come certificato root.
È possibile utilizzare l'utilità Gestione certificati o un altro strumento analogo per generare la richiesta CSR. La richiesta CSR deve soddisfare i seguenti requisiti:
- Dimensioni chiave: da 2048 bit (minimo) a 8192 bit (massimo) (con codifica PEM)
- Formato PEM. VMware supporta PKCS8 e PKCS1 (chiavi RSA). Quando le chiavi vengono aggiunte in VECS, vengono convertite in PKCS8.
- x509 versione 3
- L'estensione CA deve essere impostata su true per i certificati root e la firma del certificato deve essere presente nell'elenco dei requisiti. Ad esempio:
basicConstraints = critical,CA:true keyUsage = critical,digitalSignature,keyCertSign
- La firma di CRL deve essere abilitata.
- L'estensione EKU (Extended Key Usage) può essere vuota o contenere l'Autenticazione server.
- Nessun limite esplicito alla lunghezza della catena di certificati. VMCA utilizza il valore predefinito di OpenSSL, ovvero 10 certificati.
- I certificati con caratteri jolly o con più nomi DNS non sono supportati.
- Non è possibile creare CA secondarie di VMCA.
Per un esempio di utilizzo dell'autorità di certificazione Microsoft, vedere l'articolo della Knowledge Base di VMware all'indirizzo https://kb.vmware.com/s/article/2112009, Creazione di un modello dell'autorità di certificazione Microsoft per la creazione di certificati SSL in vSphere 6.x.
- Dimensioni chiave: da 2048 bit (minimo) a 8192 bit (massimo).
- Utilizzo chiavi: Cert Sign
- Vincolo di base: CA del tipo di oggetto
Procedura
Esempio: Sostituzione del certificato root
Sostituire il certificato root VMCA con il certificato root CA personalizzato utilizzando il comando certool con l'opzione --rootca.
/usr/lib/vmware-vmca/bin/certool --rootca --cert=<path>/root.pem -–privkey=<path>/root.key
- Aggiunge il nuovo certificato root personalizzato alla posizione del certificato nel file system.
- Aggiunge il certificato root personalizzato all'archivio TRUSTED_ROOTS in VECS.
- Aggiunge il certificato root personalizzato in vmdir.
Operazioni successive
È possibile rimuovere il certificato root VMCA originale dall'archivio dei certificati se richiesto dai criteri dell'azienda. In caso contrario, è necessario sostituire il certificato di firma di vCenter Single Sign-On. Vedere Sostituzione di un certificato STS di vCenter Server tramite la riga di comando.
Sostituzione dei certificati SSL delle macchine (autorità di certificazione intermedia) tramite la CLI
Dopo aver ricevuto il certificato firmato dall'autorità di certificazione, è possibile utilizzare la CLI per renderlo il certificato root VMCA e sostituire tutti i certificati SSL delle macchine.
Questi passaggi sono essenzialmente analoghi ai passaggi previsti per effettuare la sostituzione con un certificato che utilizza VMCA come autorità di certificazione. Tuttavia, in questo caso, VMCA firma tutti i certificati con la catena completa.
Ogni macchina deve disporre di un certificato SSL della macchina per garantire la comunicazione sicura con gli altri servizi. Quando più istanze di vCenter Server sono connesse nella configurazione Modalità collegata avanzata, è necessario eseguire i comandi di generazione dei certificati SSL della macchina in ogni nodo.
Prerequisiti
Per ogni certificato SSL della macchina, SubjectAltName deve contenere DNS Name=<Machine FQDN>.
Procedura
Esempio: Sostituzione dei certificati SSL della macchina (VMCA è un'autorità di certificazione intermedia)
- Creare un file di configurazione per il certificato SSL e salvarlo come ssl-config.cfg nella directory corrente.
Country = US Name = vmca-<FQDN-example> Organization = VMware OrgUnit = VMware Engineering State = California Locality = Palo Alto Hostname = <FQDN>
- Generare una coppia di chiavi per il certificato SSL della macchina. In una distribuzione di più istanze di vCenter Server connesse nella configurazione Modalità collegata avanzata, eseguire questo comando in ogni nodo di vCenter Server.
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
I file ssl-key.priv e ssl-key.pub vengono creati nella directory corrente.
- Generare il nuovo certificato SSL della macchina. Questo certificato è firmato da VMCA. Se il certificato root VMCA è stato sostituito con un certificato personalizzato, VMCA firma tutti i certificati con la catena completa.
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg
Il file new-vmca-ssl.crt viene creato nella directory corrente.
- (Facoltativo) Elencare il contenuto di VECS.
/usr/lib/vmware-vmafd/bin/vecs-cli store list
- Output di esempio in 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
- Output di esempio in vCenter Server:
- Sostituire il certificato SSL della macchina in VECS con il nuovo certificato SSL della macchina. I valori --store e --alias devono corrispondere esattamente ai nomi predefiniti.
- In ogni vCenter Server, eseguire i comandi seguenti per aggiornare il certificato SSL della macchina nell'archivio MACHINE_SSL_CERT. È necessario aggiornare il certificato per ogni macchina separatamente perché ciascuna ha un FQDN diverso.
/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
- In ogni vCenter Server, eseguire i comandi seguenti per aggiornare il certificato SSL della macchina nell'archivio MACHINE_SSL_CERT. È necessario aggiornare il certificato per ogni macchina separatamente perché ciascuna ha un FQDN diverso.
Sostituzione dei certificati utente della soluzione (autorità di certificazione intermedia) tramite la CLI
Dopo aver sostituito i certificati SSL delle macchine, è possibile utilizzare la CLI per sostituire i certificati utente della soluzione.
- I certificati possono trovarsi dietro un proxy o essere certificati personalizzati.
- Non vengono utilizzate CA intermedie.
Sostituire il certificato utente della soluzione della macchina e il certificato utente della soluzione in ciascun sistema vCenter Server.
Prerequisiti
Il certificato di ogni utente della soluzione deve avere un Subject diverso. È consigliabile includere ad esempio il nome utente della soluzione (come vpxd) o un altro identificatore univoco.
Procedura
Esempio: Sostituzione dei certificati utente della soluzione (CA intermedia)
- Generare una coppia di chiavi pubblica/privata per ciascun utente della soluzione in ogni nodo di vCenter Server in una configurazione Modalità collegata avanzata. Ciò include una coppia per la soluzione della macchina e una coppia per ogni utente aggiuntivo della soluzione (vpxd, vpxd-extension, vsphere-webclient, wcp).
- Generare una coppia di chiavi per l'utente della soluzione della macchina.
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
- Generare una coppia di chiavi per l'utente della soluzione vpxd in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
- Generare una coppia di chiavi per l'utente della soluzione vpxd-extension in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
- Generare una coppia di chiavi per l'utente della soluzione vsphere-webclient in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
- Generare una coppia di chiavi per l'utente della soluzione wcp in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=wcp-key.priv --pubkey=wcp-key.pub
- Generare una coppia di chiavi per l'utente della soluzione della macchina.
- Generare certificati utente della soluzione firmati mediante il nuovo certificato root VMCA per l'utente della soluzione della macchina e per ciascun utente aggiuntivo della soluzione (vpxd, vpxd-extension, vsphere-webclient, wcp) in ogni nodo di vCenter Server.
Nota: Il parametro --Name deve essere univoco. L'inclusione del nome dell'archivio degli utenti della soluzione consente di individuare facilmente quale certificato è associato a quale utente della soluzione. L'esempio include il nome, ad esempio vpxd o vpxd-extension in ogni caso.
- Eseguire una copia del file /usr/lib/vmware-vmca/share/config/certool.cfg, quindi modificare o rimuovere i campi Nome, Indirizzo IP, Nome DNS e Indirizzo e-mail in base alle necessità e rinominare il file usando ad esempio sol_usr.cfg.
- Generare un certificato per l'utente della soluzione della macchina in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine --config sol_usr.cfg
- Generare un certificato per l'utente della soluzione vpxd in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd --config sol_usr.cfg
- Generare un certificato per l'utente della soluzione vpxd-extensions in ogni nodo.
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension --config sol_usr.cfg
- Generare un certificato per l'utente della soluzione vsphere-webclient in ogni nodo eseguendo il comando seguente.
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient --config sol_usr.cfg
- Generare un certificato per l'utente della soluzione wcp in ogni nodo eseguendo il comando seguente.
/usr/lib/vmware-vmca/bin/certool --gencert --cert=new-wcp.crt --privkey=wcp-key.priv --Name=wcp --config sol_usr.cfg
- Sostituire i certificati utente della soluzione in VECS con i nuovi certificati utente della soluzione.
Nota: I parametri --store e --alias devono corrispondere esattamente ai nomi predefiniti per i servizi.
- Sostituire il certificato utente della soluzione della macchina in ogni nodo:
/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
- Sostituire il certificato utente della soluzione vpxd in ogni nodo.
/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
- Sostituire il certificato utente della soluzione vpxd-extension in ogni nodo.
/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
- Sostituire il certificato utente della soluzione vsphere-webclient in ogni nodo.
/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
- Sostituire il certificato utente della soluzione wcp in ogni nodo.
/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
- Sostituire il certificato utente della soluzione della macchina in ogni nodo:
- Aggiornare VMware Directory Service (vmdir) con i nuovi certificati utente della soluzione. Viene richiesta una password amministratore di vCenter Single Sign-On.
- Eseguire /usr/lib/vmware-vmafd/bin/dir-cli service list per ottenere il suffisso ID del servizio univoco per ogni utente della soluzione. Eseguire il comando in un sistema 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
Nota: Quando vengono elencati i certificati utente della soluzione nelle distribuzioni di grandi dimensioni, l'output di /usr/lib/vmware-vmafd/bin/dir-cli list include tutti gli utenti della soluzione di tutti i nodi. Eseguire /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost per trovare l'ID della macchina locale per ogni host. Ciascun nome utente della soluzione include l'ID della macchina. - Sostituire il certificato macchina in vmdir in ogni nodo di vCenter Server. Ad esempio, se l'utente della soluzione della macchina in vCenter Server è machine-6fd7f140-60a9-11e4-9e28-005056895a69, eseguire il comando seguente:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine.crt
- Sostituire il certificato utente della soluzione vpxd in vmdir in ogni nodo. Ad esempio, se l'ID utente della soluzione vpxd è vpxd-6fd7f140-60a9-11e4-9e28-005056895a69, eseguire il comando seguente:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
- Sostituire il certificato utente della soluzione vpxd-extension in vmdir in ogni nodo. Ad esempio, se l'ID utente della soluzione vpxd-extension è vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69, eseguire il comando seguente:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
- Sostituire il certificato utente della soluzione vsphere-webclient in ogni nodo. Ad esempio, se l'ID utente della soluzione vsphere-webclient è vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69, eseguire il comando seguente:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt
- Sostituire il certificato utente della soluzione wcp in ogni nodo. Ad esempio, se l'ID utente della soluzione wcp è wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e, eseguire il comando seguente:
/usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e --cert new-wcp.crt
- Eseguire /usr/lib/vmware-vmafd/bin/dir-cli service list per ottenere il suffisso ID del servizio univoco per ogni utente della soluzione. Eseguire il comando in un sistema vCenter Server.