
Se gestisci un ambiente VMware vSphere, prima o poi ti capiterà di ricevere questo alert nei log o dalla vSphere Client:
MACHINE_SSL_CERT certificate in VECS is about to expire
Un certificato Machine SSL scaduto non è un dettaglio da poco: quando succede, vCenter smette di comunicare correttamente con vLCM, con gli host ESXi e con qualsiasi client che verifichi il certificato TLS, con errori tipo x509: certificate has expired or is not yet valid che si propagano a raffica nei log di vlcm.log.
Fortunatamente Broadcom mette a disposizione vCert.py, un tool ufficiale a menu che permette di controllare lo stato di tutti i certificati di vCenter (Machine SSL, Solution Users, STS signing, VMCA, e altri) e di sostituirli senza dover ricorrere a manipolazioni manuali di VECS o OpenSSL a mano.
In questa guida vediamo passo passo come:
scaricare e caricare lo script sull’appliance vCenter,
verificare lo stato attuale dei certificati,
rinnovare il Machine SSL certificate (sia con firma VMCA che con CA custom),
aggiornare gli SSL Trust Anchors in caso di Enhanced Linked Mode,
riavviare i servizi correttamente a fine operazione.
⚠️ PRIMA DI INIZIARE
Verifica se il tuo vCenter è 8.0 U3h+ con VMCA in modalità vmca (default): in quel caso il certificato si rinnova automaticamente 5 giorni prima della scadenza. Controlla comunque la data di scadenza reale prima di agire.
Se usi un certificato custom (CA interna, es. la tua AD CS, o Let’s Encrypt), il rinnovo automatico non si applica: serve intervento manuale.
Obbligatorio: crea uno snapshot (o backup VAMI) della VM di vCenter prima di toccare qualsiasi certificato. Se sei in Enhanced Linked Mode, snapshot su tutti i nodi PSC/vCenter del dominio SSO.
SCARICARE LO SCRIPT
Vai sulla pagina del KB385107
Andare al fondo della pagina e scaricare l’allegato vCert-6.1.2-20260713.zip (verificare hash se vuoi: MD5 ce8aea7d342e4ffa208769798aba56e3)
CARICARE LO SCRIPT SUL VCENTER
Caricare lo zip sull’appliance vCenter eseguendo i passaggi elencati di seguito
Aprire dal proprio PC un terminale Powershell
Collegarsi al Vcenter in SSH con il comando:
|
0 |
ssh root@<vcenter-fqdn-o-IP> |
Abilitare la shell digitando il comando:
|
0 |
shell |
Questo ti porta temporaneamente in bash. Poi per rendere bash la shell di default di root (così anche scp funziona senza intoppi), lancia da dentro la bash il comando:
|
0 |
chsh -s /bin/bash root |
Quindi copiare il file con il seguente comando:
|
0 |
scp -O C:\temp\vCert-6.1.2-20260713.zip root@<vcenter-fqdn-o-IP>:/root/ |
NOTA BENE: nel mio caso ho il file .zip all’interno della cartella C:\temp
Oppure è possibile copiare il file tramite l’upload da VAMI/vSphere Client se preferisci non aprire SSH dall’esterno.
ESTRARRE ED ESEGUIRE LO ZIP
Connettersi via SSH all’appliance vCenter come root ed eseguire i seguenti comandi:
|
0 1 2 3 |
unzip -q vCert-6.1.2-20260713.zip cd vCert-6.1.2-20260713 chmod +x vCert.py ./vCert.py |
Confermare l’avviso iniziale (y) solo dopo aver verificato di avere lo snapshot pronto.
NOTA BENE: Lo script logga in /var/log/vmware/vCert/vCert.log e crea una working dir in /root/vCert-master/YYYYMMDD/ (backup dei certificati inclusi).
VERIFICARE LO STATO ATTUALE DEI CERTIFICATI
Se è andato tutto a buon fine dovremmo visualizzare una schermata come l’immagine sottostante
Selezionare l’opzione 1. Check current certificate status
Ci dice se il Machine SSL è scaduto/in scadenza entro 30gg, se il PNID è presente nel SAN, se la chain è completa, ecc.
Dovremmo vedere il certificato Machine SSL in scadenza come mostra l’imamgine sovrastante
Poi controllare i dettagli specifici selezionare l’opzione 2. View certificate info
Selezionare l’opzione 1. Machine SSL certificate quindi annotare scadenza, subject e fingerprint attuali.
SOSTITUZIONE DEL MACHINE SSL CERTIFICATE
Dal menu principale
Selezionare l’opzione 3. Manage certificates
Selezionare l’opzione 1. Machine SSL certificate
Verrà chiesto il tipo di certificato:
1. Replace Machine SSL certificate with a VMCA-signed certificate: Rinnovo rapido e ok se non serve trust esterno
2. Replace Machine SSL certificate with a custom CA-signed certificate: Se usi la tua AD CS interna o altra CA — lo script può generare CSR + chiave, oppure importare un certificato+chiave già firmati
ATTENZIONE: Se si sceglie custom CA-signed e la catena non è completa, lo script chiederà il file con la chain CA completa (vedi anche KB 316601 step 10 per i dettagli sulla chain).
AGGIORNAMENTO DEL SSL TRUST ANCHORS (SOLO SE IN ENHANCED LINKED MODE)
Se hai più nodi vCenter/PSC nello stesso dominio SSO, dal menu principale:
4. Manage SSL trust anchors → 2. Update SSL Trust Anchors
Questo allinea gli altri nodi al nuovo certificato appena generato.
RIAVVIO DEI SERVIZI
Dal menu principale
Selezionare l’opzione 8. Restart services
Selezionare l’opzione 1. Restart all VMware services
(oppure 2 per riavviare solo un servizio specifico, se lo script/log ti indica quale)
Se è andato tutto a buon fine dovremo visualizzare una schermata come mostrato nell’immagine sovrastante
VERIFICA FINALE
Dal menu principale
Selezionare l’opzione 1. Check current certificate status
Se è tutto OK dovremmo visualizzare una schermata come mostrato nell’immagine sovrastante
E’ possibile generare un report completo con il seguente comando:
9. Generate certificate report
e verrà salvato in /var/log/vmware/vCert/.
CONSIDERAZIONI FINALI
La gestione dei certificati in vCenter è uno di quegli aspetti dell’infrastruttura VMware che si tende a dare per scontato finché non arriva l’alert di scadenza e a quel punto, se non si è preparati, il rischio di impatto su vLCM, backup (Veeam), integrazioni di terze parti e comunicazione con gli host ESXi è concreto.
vCert.py semplifica enormemente questo processo rispetto alla gestione manuale via openssl e VECS CLI, ma resta comunque un’operazione delicata: non è un tool da lanciare “a scatola chiusa”. Alcuni punti da tenere sempre a mente:
Lo snapshot non è opzionale. Anche se la procedura guidata riduce il margine di errore, un problema nella sostituzione del Machine SSL può compromettere l’intera comunicazione di vCenter con l’ambiente. Uno snapshot pre-operazione è l’unica vera rete di sicurezza.
Verifica sempre il PNID prima di generare il certificato, non dopo. Come visto, un SAN incompleto (errore NO PNID) è uno degli errori più comuni e facilmente evitabili controllando vmafd-cli get-pnid prima di procedere.
In Enhanced Linked Mode, l’ordine conta. Aggiornare i trust anchor su tutti i nodi dopo la sostituzione evita disallineamenti tra i vCenter dello stesso dominio SSO, che possono generare errori di autenticazione intermittenti difficili da diagnosticare.
Pianifica una finestra di manutenzione, anche se l’operazione dura pochi minuti: il riavvio dei servizi VMware comporta una breve interruzione della gestione centralizzata (vSphere Client, API, integrazioni).
In ambienti multi-tenant o MSP come quelli che gestisco quotidianamente, vale la pena automatizzare un controllo periodico dello stato dei certificati (ad esempio con LibreNMS o uno script schedulato che lancia l’opzione 1 di vCert.py e notifica in caso di scadenza imminente), così da anticipare l’alert prima che diventi un’emergenza.

0 commenti