L'agent di Acronis, Windows Server Core e problemi di connessione SSL
Qualche giorno fa abbiamo riscontrato uno strano problema su un paio di server dopo avere aggiornato gli agent di Acronis. La console non consentirva più l’esecuzione del piano di backup, sia in modo automatico che manuale, segnalando che l’agent non era più registrato. Sembrava molto strano visto che avevamo effettuato aggiornamenti degli agent diverse volte in passato senza riscontrare alcun problema ma questa volta gli agent non riuscivano più a registrarsi.
In realtà nello stesso ciclo di aggiornamenti avevamo avuto altri due problemi su macchine Linux ma questi erano spariti riavviando i due server. Inoltre, avevamo notato che i due server che presentavano questo problema erano installazioni di Windows Server Core che ospitavano SQL Server. Abbiamo quindi deciso di registrare nuovamente gli agent manualmente ma sorprendentemente non era possibile perchè l’agent si lamentava del fatto che il certificato dell’endpoint non fosse valido. Anzi, in maniera più specifica, che la Certification Authority fosse sconosciuta.
Quei due server funzionavano correttamente prima dell’aggiornamento e, cosa ancora più strana, sembrava che non fossimo in grado di registrare gli agent nemmeno usando l’endpoint di Acronis invece che il nostro endpoint specifico. Stesso errore. Se era possibile, anche se improbabile, che il nostro endpoint usasse un certificato che causava problemi – anche se funzionava correttamente con le altre macchine e nei browser – non era possibile che ci fosse qualche problema con quello di Acronis.
Aggiornamento autorità di root
L’errore riportato dall’agent era abbastanza indicativo ma noi avevamo problemi a collegarci agli endpoint anche in modo standard, usando per esempio Powershell
Invoke-WebRequest -UseBasicParsing -Uri https://cloud.acronis.com
C’era sicuramente un problema con le connessioni SSL. Anche se PowerShell restituiva un errore generico sull’impossibilità di completare la connessione, l’agent di Acronis riportava un errore di molto più specifico per il quale abbiamo deciso di aggiornare i certificati di root sulla macchina:
md C:\Temp
cd C:\Temp
# Scarica TUTTI i certificati di root da Windows Update
certutil.exe -generateSSTFromWU roots.sst
# Importa TUTTI i certificati nello store delle autorità di root
$sstContainer = (Get-ChildItem -Path C:\temp\roots.sst)
$sstContainer | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
Dopo aver lanciato questo questi comandi sarà necessario riavviare la macchina per consentirle di ricaricare tutti i certificati.
Problemi di cifratura
Questo non ha risolto il problema di per sè. Quando la macchina è tornata online le connessioni agli endpoint di Acronis continuavano a non riuscire anche se con un errore diverso da parte dell’agent e lo stesso errore da parte di Powershell. Abbiamo quindi deciso di verificare meglio se fosse un problema di cifratura e di forzare le connessioni TLS1.2 in Powershell usando:
# Forza PowerShell ad usare TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Ovviamente devi ricordare di non chiudere la sessione o perderai l’impostazione effettuata e dovrai applicarla di nuovo. Un altro tentativo di connessione ai nostri endpoint e … bingo! Ora tutto funzionava correttamente!
PS C:\temp> Invoke-WebRequest -UseBasicParsing -Uri https://backup.vaisulweb.cloud
StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible
content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta
name=referrer content=o...
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Vary: Accept-Encoding
X-Frame-Options: DENY,SAMEORIGIN
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: ETag,Content-Length,Content-Typ...
Forms :
Headers : {[Connection, keep-alive], [Vary, Accept-Encoding], [X-Frame-Options, DENY,SAMEORIGIN],
[Access-Control-Allow-Credentials, true]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml :
RawContentLength : 570
Quindi avevamo due problemi separati. Abbiamo riprovato a registrare nuovamente l’agent:
register_agent.exe -o register -t cloud -a https://cloud.acronis.com -u <account> -p <password>
ed ora tutto funzionava correttamente! Whoa! I piani di backup hanno ripreso a funzionare senza problemi. Speriamo che questo post sia utile anche a qualcuno di voi !
Leave a Response