Guide / windows-server
Nove ore di scarto: l'errore sui certificati era l'orologio
Entra Connect si fermava su un certificato scaduto. Due orari nello stesso evento raccontavano un'altra storia: il fuso delle VM, Proxmox, e nove ore precise.
L’installazione di Entra Connect si fermava sempre nello stesso punto, con un messaggio che non lasciava molto spazio all’interpretazione.
Microsoft Entra Connect could not configure application based
authentication for this server. Setup cannot continue.
Nel registro eventi, la riga sotto era ancora più esplicita.
AADSTS700027: The certificate with identifier used to sign the client
assertion is expired on application.
[Found key 'Start=08/20/2026 22:28:10, End=11/18/2026 22:28:10']
Un certificato scaduto. Solo che la data di fine era a tre mesi di distanza, nel futuro. Un certificato che scade fra novanta giorni non è scaduto.
Due orologi nella stessa riga
La risposta era nello stesso evento, poche righe più sotto. C’erano due marche temporali, e non erano d’accordo.
MSAL (orologio della VM) : 2026-08-20 22:28:41Z
Entra (orologio di Microsoft) : 2026-08-20 13:28:43Z
I secondi combaciavano quasi. Le ore no: nove esatte di scarto. La macchina generava certificati e asserzioni firmate con date che, valutate all’ora reale, non erano ancora valide — o erano già passate, a seconda del verso in cui le si guardava. Entra le rifiutava, e lo faceva con l’unico messaggio che aveva a disposizione: certificato non valido.
Il numero nove non era casuale. È la differenza fra l’ora italiana e l’ora del Pacifico.
La causa vera
Proxmox, per le macchine con ostype Windows, presenta un orologio virtuale espresso in ora locale dell’host, non in UTC. L’host segnava le 15:17 italiane e alle VM passava esattamente quel valore.
Le VM erano configurate su Pacific Standard Time. Leggevano «15:17» e concludevano, correttamente rispetto a quello che sapevano, che l’UTC fosse nove ore più avanti. Ogni operazione firmata da quel momento portava una data sbagliata di nove ore.
Il dettaglio che rendeva la cosa insidiosa: il guasto si ripresentava a ogni riavvio. È all’avvio che Windows legge l’orologio virtuale. Qualunque correzione fatta a mano sull’ora durava fino allo spegnimento successivo, e questo faceva sembrare il problema intermittente quando invece era perfettamente deterministico.
Il rimedio è allineare il fuso delle macchine a quello dell’host.
Set-TimeZone -Id "W. Europe Standard Time"
Quello che si è rotto mentre lo si aggiustava
Correggere l’ora ha rotto altre cose, e vale la pena saperlo prima di trovarcisi dentro.
Kerberos
Kerberos tollera al massimo cinque minuti di differenza fra le macchine. Con nove ore, PowerShell remoto, WinRM e la Exchange Management Shell hanno semplicemente smesso di funzionare — proprio gli strumenti con cui si stava lavorando.
Il ripristino ha richiesto, su ogni macchina, di buttare via i ticket accumulati:
klist purge
e in alcuni casi un riavvio, perché i ticket dei servizi non stanno tutti nella sessione interattiva.
Il DAG
Il gruppo di disponibilità del database ne ha risentito subito: copie in DisconnectedAndResynchronizing, Active Manager in uno stato incoerente, e un messaggio che accusava l’Active Directory di una colpa che non aveva.
Could not find server 'LAB-MBX02' in Active Directory
Il server c’era. Si è risolto tutto allineando l’ora, riavviando il nodo e riavviando il servizio MSExchangeRepl su entrambi i nodi — non solo su quello che protestava.
Le tre lezioni
Un errore che parla di certificati può essere un orologio. Autenticazione, firme, token, certificati: tutto quello che ha una validità temporale si rompe allo stesso modo quando l’ora è sbagliata, e nessuno di questi componenti dice «controlla l’ora». Dicono «non valido», che è vero e inutile.
Il controllo più veloce è nello stesso evento. Quando un servizio remoto rifiuta qualcosa di firmato, cerca nel messaggio la sua marca temporale e confrontala con la tua. Se il registro le mette una accanto all’altra, la diagnosi dura tre secondi. È molto più rapido di qualunque ipotesi sui certificati.
Un guasto che torna a ogni riavvio non è intermittente. È deterministico, e la cosa che lo determina è qualcosa che succede all’avvio. Restringe il campo parecchio: orologio, servizi, ordine di partenza, quello che la macchina legge dal suo hypervisor.
Laboratorio costruito con il supporto di Ilie.