Diagnosi dell'errore "no healthy upstream" su vCenter Server Appliance, verifica della scadenza dei certificati e rigenerazione con certificate-manager

Quando si apre il client web del vCenter e al posto della pagina di accesso compare soltanto il messaggio "no healthy upstream", il proxy inverso dell'appliance è in funzione ma non riesce a raggiungere i servizi a cui dovrebbe inoltrare la richiesta: in pratica i servizi del vCenter non sono partiti o non rispondono. Una delle cause più frequenti, soprattutto dopo due anni dall'installazione, è la scadenza dei certificati interni. Questa guida mostra come escludere le altre cause, verificare le scadenze e rigenerare i certificati con lo strumento integrato certificate-manager.

ℹ️ Convenzioni usate nella guida

indica l'FQDN o l'indirizzo IP del vCenter Server Appliance (VCSA), il nome di uno store di certificati. Gli screenshot si riferiscono a vCenter 7.0; su vCenter 8 la procedura è analoga. Negli screenshot i thumbprint dei certificati sono stati oscurati.

Indice

1. Sintomo e cause

Il messaggio no healthy upstream viene restituito dal proxy dell'appliance quando nessun servizio a valle risulta disponibile. Non indica quindi un problema del browser né della rete tra client e vCenter, ma un problema interno all'appliance. Le cause tipiche sono:

CausaCome riconoscerlaDove intervenire
Certificati scaduti (Machine SSL, Solution User, root VMCA)Data Not After passata negli store VECS; browser che mostra un certificato scadutoSezione 4 e sezione 5
Disco pienoUna o più partizioni al 100% in df -h o allarme nella VAMISezione 3
Orario errato o NTP non sincronizzatoOrario della VAMI diverso da quello reale; errori di token SSOSezione 3
DNS o configurazione di rete erratiL'FQDN del vCenter non si risolve (anche in inversa) o la NIC ha impostazioni errateSezione 3
Servizi arrestati per altri motiviServizi non in stato healthy nella VAMI o in service-control --statusSezione 6

Per questo la procedura parte dai controlli di base e arriva ai certificati solo dopo averli superati.

2. Prerequisiti e precauzioni

2.1 Accesso alla VAMI

Anche quando il client web non funziona, di solito resta raggiungibile l'interfaccia di gestione dell'appliance (VAMI), sulla porta 5480: apri nel browser https://:5480.

Si accede con l'utente root dell'appliance. Dalla VAMI si controllano lo stato dei servizi, lo spazio disco, l'orario e la rete, e si abilita l'accesso SSH.

2.2 Accesso alla shell

Abilita SSH dalla VAMI (sezione Accesso) e collegati come root con un client SSH. Se l'appliance presenta il prompt Command> (appliance shell), passa alla shell Bash con:

VCSA Shell
shell

Tutti i comandi delle sezioni successive vanno eseguiti nella shell Bash come root.

2.3 Snapshot e credenziali

⚠️ Prima di modificare i certificati

Esegui uno snapshot della VM del vCenter (o un backup basato su file dalla VAMI), così da poter tornare indietro in caso di problemi. Se il vCenter fa parte di un gruppo in Enhanced Linked Mode, gli snapshot vanno presi su tutti i vCenter collegati nello stesso momento, preferibilmente a VM spente. Tieni inoltre a portata di mano la password di [email protected] (o dell'amministratore del dominio SSO): certificate-manager la richiede.

3. Controlli preliminari

Prima di intervenire sui certificati assicurati che:

  1. la pagina di gestione https://:5480 sia accessibile (sezione 2.1);
  2. i servizi siano in stato healthy (VAMI > Servizi, oppure service-control --status --all);
  3. ci sia spazio disponibile sui dischi (VAMI > Monitoraggio, oppure df -h): una partizione piena, spesso quella dei log, impedisce l'avvio dei servizi;
  4. l'orario sia corretto e il servizio NTP sincronizzato (VAMI > Ora): con un orario sbagliato i token SSO e i certificati risultano non validi;
  5. DNS e impostazioni delle NIC siano corretti: l'FQDN del vCenter deve risolversi correttamente, anche con la risoluzione inversa.
VCSA Shell
service-control --status --all
df -h

Se tutti i punti sono a posto e il problema persiste, passa al controllo dei certificati.

4. Verifica della scadenza dei certificati

I certificati del vCenter sono conservati nel VECS (VMware Endpoint Certificate Store), suddiviso in store. Il comando seguente scorre tutti gli store (escluso quello delle liste di revoca) e per ogni certificato mostra l'alias e la data di scadenza (Not After):

VCSA Shell
for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do
    echo "[*] Store : $store"
    /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not After"
done
Output del controllo dei certificati VECS: store, alias e data di scadenza Not After
Figura 1 – Scadenza dei certificati negli store VECS

Come leggere l'output:

StoreContenutoSe è scaduto
MACHINE_SSL_CERTCertificato Machine SSL: è quello presentato al browser e ai client sulla porta 443Opzione 3 di certificate-manager (sezione 5.2)
TRUSTED_ROOTSCertificati delle CA radice attendibili, tra cui la root della VMCAOpzione 4 (sezione 5.4)
machine, vpxd, vpxd-extension, vsphere-webclientCertificati Solution User, usati dai servizi interni per autenticarsi verso l'SSOOpzione 6 (sezione 5.4)
SMSCertificato del servizio Storage Monitoring (autofirmato)—
STS_INTERNAL_SSL_CERTCertificato SSL interno del servizio di token (STS)Segue il Machine SSL
APPLMGMT_PASSWORDContiene password dell'appliance, non certificati: non ha data di scadenza—
data-enciphermentCertificato usato per la cifratura dei dati interni—

Puoi verificare il certificato Machine SSL anche dal browser: aprendo i dettagli del certificato della pagina del vCenter si vedono il nome comune, l'emittente (la VMCA, CA) e il periodo di validità.

Visualizzatore certificati del browser con il certificato Machine SSL del vCenter e il periodo di validità
Figura 2 – Periodo di validità del certificato visto dal browser

💡 Certificato di firma STS

Oltre ai certificati elencati nel VECS, il servizio di token (STS) usa un proprio certificato di firma, che non compare in questo elenco e che può scadere anch'esso causando gli stessi sintomi. Se dopo aver rinnovato i certificati il problema resta, consulta nella knowledge base di Broadcom/VMware gli articoli dedicati alla verifica e al rinnovo del certificato STS (script checksts e fixsts).

5. Rigenerazione con certificate-manager

vSphere Certificate Manager è lo strumento a riga di comando incluso nell'appliance per sostituire o rigenerare i certificati. Si avvia con:

VCSA Shell
/usr/lib/vmware-vmca/bin/certificate-manager
Menu di vSphere Certificate Manager con le otto operazioni disponibili
Figura 3 – Menu di vSphere Certificate Manager

5.1 Le operazioni disponibili

OpzioneOperazioneQuando usarla
1Sostituisce il Machine SSL con un certificato personalizzatoCertificato emesso da una CA aziendale o pubblica
2Sostituisce la root VMCA con un certificato di firma personalizzato e sostituisce tutti i certificatiVMCA come CA subordinata di una CA aziendale
3Sostituisce il Machine SSL con un certificato emesso dalla VMCACaso più comune: Machine SSL scaduto, VMCA come CA
4Rigenera la root VMCA e sostituisce tutti i certificatiRoot VMCA scaduta o in scadenza
5Sostituisce i certificati Solution User con certificati personalizzatiAmbienti con CA esterna (funzione destinata a essere deprecata)
6Sostituisce i certificati Solution User con certificati VMCACertificati Solution User scaduti
7Annulla l'ultima operazione ripubblicando i certificati precedentiRipristino dopo un'operazione non riuscita
8Reimposta tutti i certificatiUltima risorsa: rigenera tutto con la VMCA

5.2 Opzione 3: rigenerare il Machine SSL con la VMCA

Nel caso dell'esempio è scaduto il certificato Machine SSL emesso dalla VMCA. Scegli l'opzione 3 e rispondi alle richieste:

  1. Credenziali: inserisci l'utente amministratore SSO (predefinito [email protected]) e la relativa password.
  2. Valori di certool.cfg: lo strumento chiede i dati del nuovo certificato. Premendo Invio si accetta il valore predefinito o si salta un parametro facoltativo. Country è il codice di due lettere del paese (es. IT); Name, Organization, OrgUnit, State, Locality ed Email sono informativi.
  3. IPAddress: facoltativo; puoi indicare l'IP del vCenter.
  4. Hostname: inserisci l'FQDN del vCenter, esattamente quello con cui è stato installato (il PNID) e con cui viene raggiunto. Un nome diverso genera un certificato non valido per i client.
  5. VMCA Name: il nome della VMCA, normalmente l'FQDN del vCenter.
  6. Conferma con Y l'operazione You are going to regenerate Machine SSL cert using VMCA.
Certificate Manager, opzione 3: credenziali SSO, valori di certool.cfg e conferma della rigenerazione
Figura 4 – Opzione 3 di certificate-manager

Lo strumento sostituisce il certificato e riavvia tutti i servizi: l'avanzamento (Status: 85% Completed [starting services...]) può richiedere diversi minuti. Attendi il completamento senza interrompere la sessione.

5.3 Se l'operazione si interrompe

Se certificate-manager termina con un errore, rileggi il messaggio a video e verifica i controlli preliminari (in particolare orario e DNS). Puoi annullare l'operazione con l'opzione 7 oppure, se il vCenter non riparte, tornare allo snapshot fatto in precedenza.

5.4 Altri certificati scaduti

  • Se sono scaduti anche i certificati Solution User (store machine, vpxd, vpxd-extension, vsphere-webclient), esegui anche l'opzione 6.
  • Se è scaduta la root VMCA (store TRUSTED_ROOTS), usa l'opzione 4, che rigenera la root e tutti i certificati emessi da essa.
  • Se il Machine SSL era emesso da una CA aziendale, usa l'opzione 1 con il nuovo certificato emesso da quella CA.

Al termine ripeti il controllo delle scadenze per assicurarti che non restino certificati scaduti.

6. Riavvio dei servizi

certificate-manager riavvia i servizi da solo. Se al termine il client web mostra ancora l'errore, oppure se hai risolto un problema di disco, orario o DNS, riavvia manualmente tutti i servizi:

VCSA Shell
service-control --stop --all
service-control --start --all

L'avvio completo può richiedere 10–15 minuti. Controlla poi lo stato con service-control --status --all: tutti i servizi necessari devono risultare in esecuzione.

7. Verifica finale e impatti

  1. Apri https:///ui: deve comparire la pagina di accesso del vSphere Client.
  2. Controlla il certificato nel browser: la data di scadenza deve essere quella nuova (vedi Figura 2).
  3. Ripeti il comando di verifica e accertati che nessun certificato risulti scaduto.
  4. Verifica che gli host ESXi risultino connessi e che non ci siano allarmi.

Dopo la sostituzione del Machine SSL il thumbprint del vCenter cambia. Le soluzioni esterne registrate sul vCenter tramite certificato o thumbprint (software di backup, plugin di terze parti, altri prodotti VMware) possono richiedere di accettare il nuovo certificato o di ripetere la registrazione. Per evitare l'avviso del browser, scarica e importa le CA radice dalla pagina iniziale del vCenter (Download trusted root CA certificates).

💡 Evita che succeda di nuovo

Il vCenter genera allarmi quando i certificati si avvicinano alla scadenza: non ignorarli e annota in calendario la data Not After dei nuovi certificati, così da rinnovarli prima che i servizi si fermino.

ComandoDoveA cosa serve
https://:5480BrowserInterfaccia di gestione dell'appliance (VAMI)
shellConsole / SSHPassare dall'appliance shell alla shell Bash
df -hShell VCSASpazio libero sulle partizioni
service-control --status --allShell VCSAStato dei servizi del vCenter
vecs-cli entry list --store --textShell VCSAScadenza dei certificati negli store VECS
/usr/lib/vmware-vmca/bin/certificate-managerShell VCSASostituzione e rigenerazione dei certificati
service-control --stop --all / --start --allShell VCSARiavvio completo dei servizi
ProblemaCosa fare
"no healthy upstream" sul client webControlli preliminari → verifica certificati → certificate-manager
La VAMI sulla porta 5480 non rispondeAccedi dalla console della VM e controlla rete e spazio disco (sezione 3)
Machine SSL scadutoOpzione 3
Solution User o root VMCA scadutiOpzioni 6 e 4
Certificati validi ma servizi ancora fermiRiavvio dei servizi e verifica del certificato STS (nota in sezione 4)
certificate-manager termina con erroreSezione 5.3
Backup o plugin non si connettono dopo la sostituzioneAccetta il nuovo certificato o ripeti la registrazione (sezione 7)

Leave A Comment