Gestire e aggiornare gratuitamente i certificati digitali dei Remote Desktop Services (RDS) con la CA Let’s Encrypt

Nel gestire i servizi di Remote Desktop Services è fondamentale assicurare la sicurezza e l’affidabilità attraverso certificati digitali validi. Tuttavia, il rinnovo periodico di questi certificati può rappresentare un onere economico non trascurabile. Per questo la Certification Authority Let’s Encrypt offre una soluzione pratica e gratuita che vi permetterà di rilasciare e aggiornare automaticamente i vostri certificati. Questo articolo vi guiderà nel configurare questo processo in modo che possiate beneficiare di una gestione senza interruzioni, massimizzando così la sicurezza e l’efficienza del vostro ambiente RDS.

Cos’è Let’s Encrypt

Let’s Encrypt è un’autorità di certificazione (CA) gratuita, automatizzata e aperta, lanciata nel 2014 come progetto della Internet Security Research Group (ISRG). Ha lo scopo di rendere la crittografia su Internet ubiqua e facile da usare, al fine di migliorare la privacy e la sicurezza complessive del web. Fornisce certificati digitali X.509 necessari per abilitare HTTPS (SSL/TLS) sui siti web, senza alcun costo per gli utenti finali. Trovate tutti gli articoli che trattano di Let’s Encrypt utilizzando la chiave di ricerca Let’s encrypt – ICT Power

Caratteristiche principali di Let’s Encrypt includono:

  • Gratuità: Let’s Encrypt offre certificati SSL/TLS gratuitamente, nel tentativo di rendere criptate tutte le comunicazioni web. Ciò rende la sicurezza accessibile anche per i piccoli siti web e gli utenti con budget limitato.
  • Automazione: Supporta pienamente l’Automated Certificate Management Environment (ACME), un protocollo standardizzato per l’automazione delle attività relative ai certificati, come l’emissione, il rinnovo e la revoca. Questo riduce significativamente il lavoro manuale necessario per gestire i certificati SSL/TLS.
  • Sicurezza: Anche se i certificati sono gratuiti, ciò non compromette la sicurezza. Let’s Encrypt fornisce lo stesso livello di sicurezza dei certificati a pagamento.
  • Apertura: È un progetto open source che promuove la trasparenza. La documentazione, il software utilizzato per gestire l’autorità di certificazione e il protocollo ACME sono disponibili liberamente.
  • Accessibilità: Mirando a rendere la crittografia accessibile a tutti, Let’s Encrypt ha semplificato il processo di ottenimento di un certificato, rendendolo fattibile anche per chi non ha esperienza tecnica avanzata.

L’obiettivo di Let’s Encrypt di spingere l’intero web verso una connessione crittografata ha avuto un enorme impatto, aumentando significativamente il numero di siti web che utilizzano HTTPS e migliorando la sicurezza e la privacy online per tutti gli utenti di Internet.

Che tipo di certificati è possibile generare con Let’s Encrypt?

Con Let’s Encrypt, potete generare diversi tipi di certificati digitali gratuiti che si adattano a varie esigenze di sicurezza web. Eccoli:

  • Certificati Singoli: Questi certificati sono rilasciati per un unico nome di dominio completamente qualificato (FQDN). Per esempio, potete ottenere un certificato per www.esempio.com o mail.esempio.com. Sono perfetti per siti web o servizi specifici che necessitano di una connessione sicura.
  • Certificati Multi-dominio (SAN o UCC): I certificati multi-dominio, noti anche come certificati SAN (Subject Alternative Name) o UCC (Unified Communications Certificate), vi permettono di proteggere più nomi di dominio o sottodomini con un unico certificato. Questo tipo di certificato è molto utile per le organizzazioni che gestiscono diversi siti web o servizi web sotto nomi di dominio differenti. Con un certificato SAN, ad esempio, potete includere www.esempio.com, www.esempio.net, e mail.altroesempio.com tutti sotto lo stesso certificato.
  • Certificati Wildcard: I certificati Wildcard vi permettono di proteggere un dominio e un numero illimitato di sottodomini al livello specificato. Ad esempio, un certificato Wildcard per *.esempio.com coprirà mail.esempio.com, www.esempio.com, e qualsiasi altro sottodominio di esempio.com. Sono particolarmente utili quando avete bisogno di proteggere diversi sottodomini senza specificare in anticipo tutti i nomi.

Come si ottengono i certificati da Let’s Encrypt?

Potete ottenere questi certificati attraverso il processo ACME (Automatic Certificate Management Environment), utilizzando client ACME come Certbot o altri strumenti compatibili. Il processo tipicamente include la prova di controllo del dominio che desiderate proteggere, che può essere realizzata via file su un server web, record DNS, o altri metodi supportati da Let’s Encrypt.

NOTA: È importante notare che, mentre i certificati Let’s Encrypt sono gratuiti e automatici, richiedono un rinnovo regolare ogni 90 giorni. Fortunatamente, questo processo può essere automatizzato con la maggior parte dei client ACME, assicurando che la vostra sicurezza web rimanga aggiornata senza intervento manuale continuo.

Generazione di certificati digitali pubblici utilizzando la Certification Authority gratuita Let’s Encrypt e PowerShell

Let’s Encrypt utilizza il protocollo ACME per rilasciare i certificati digitali, dopo aver verificato che siate i legittimi proprietari del nome di dominio che volete utilizzare nel certificato. Tra i diversi client che potete utilizzare e che utilizzano il protocollo ACME, descritti alla pagina https://letsencrypt.org/docs/client-options/ , ho deciso di utilizzare un client scritto per PowerShell che si chiama Posh-ACME.

Posh-ACME è un’opzione popolare, poiché è un modulo PowerShell puro che funziona su Windows, Linux e macOS. Trovate tutti i passaggi per l’installazione del modulo PowerShell visitando la pagina Generazione di certificati digitali pubblici utilizzando la Certification Authority gratuita Let’s Encrypt e PowerShell – ICT Power

I plugin di Posh-ACME sono componenti aggiuntivi usati dal client PowerShell Posh-ACME per facilitare l’automazione nella generazione e rinnovamento dei certificati SSL/TLS tramite il protocollo ACME. Ogni plugin serve a gestire specifiche configurazioni di dominio o tipi di validazione richiesti dalle varie Certification Authorities, come la gestione di challenge DNS o HTTP. Ciò permette agli utenti di adattare il processo di rilascio dei certificati alle proprie esigenze di sistema e infrastruttura.

Installazione del modulo PowerShell Posh-ACME

Per installare il modulo PowerShell Posh-ACME è sufficiente aprire un prompt di PowerShell con privilegi amministrativi e lanciare i seguenti comandi:

Figura 1: Installazione del modulo PowerShell Posh-ACME

Richiesta di un nuovo certificato

Collegatevi ad uno dei vostri server RDS (io mi sono collegato al Connection Broker) e aprite un prompt di PowerShell con privilegi elevati. Per generare un nuovo certificato ho utilizzato i comandi:

Vi rimando alla pagina Tutorial – Posh-ACME (poshac.me) per una guida dettagliata dei comandi.

Figura 2: Comando per la richiesta di un nuovo certificato

La validazione DNS di Let’s Encrypt è un metodo per dimostrare il controllo sul dominio per il quale si sta richiedendo un certificato SSL/TLS. Let’s Encrypt vi chiederà di creare un record DNS specifico (nello specifico un record TXT) nel dominio che state cercando di proteggere. Questo record contiene un valore unico generato durante il processo di richiesta del certificato. La mia zona DNS è ospitata su Azure.

Figura 3: Inserimento del record TXT per la DNS validation di Let’s Encrypt

Una volta che il record TXT è stato aggiunto e si è propagato (il che può richiedere da pochi secondi fino a diverse ore), potete procedere con la richiesta di verifica a Let’s Encrypt tramite il vostro client ACME. Let’s Encrypt quindi effettuerà una query DNS per il vostro dominio, cercando il record TXT che avete aggiunto. Se il valore del record corrisponde al token che hanno fornito, questo dimostra che avete il controllo sul dominio.

Nel giro di pochi istanti il vostro certificato sarà generato.

Figura 4: Emissione del certificato avvenuta con successo

Il certificato si trova in una sottocartella di %localappdata%\Posh-ACME

Nella cartella troverete il file .PFX (protetto con la password predefinita poshacme) e anche i file .KEY e .CER nel caso in cui vogliate poi successivamente installare il certificato in una macchina Linux. Questo vi permetterà di installare facilmente il certificato in un’altra macchina.

Figura 5: Cartella con i certificati generati da Let’s Encrypt

Importate il certificato nello store locale della macchina con i comandi PowerShell

NOTA: Potete anche utilizzare lo switch -Install al momento della creazione del certificato (ad esempio New-PACertificate *.nomedominio -AcceptTOS -Install -Contact MaildiContatto) per effettuare contemporaneamente sia la richiesta del certificato che la sua installazione nello store locale della macchina.

    Figura 6: Installazione del certificato nello store della macchina

Installazione del certificato nei server Remote Desktop Services (RDS)

Per installare il certificato per i diversi ruoli dei server RDS è sufficiente utilizzare i seguenti comandi PowerShell:

Figura 7:Installazione del certificato nei ruoli RDS

Potete verificare l’avvenuta installazione del certificato direttamente dal Server Manager, come mostrato nella figura sotto:

Figura 8: Verifica dell’avvenuta installazione del certificato per i ruoli RDS

Il Remote Desktop Web Client è un componente aggiuntivo per i Remote Desktop Services (RDS) su Windows Server che permette agli utenti di accedere ai loro desktop e applicazioni RDS attraverso un browser web. Questo client web non richiede l’installazione di software aggiuntivo sui dispositivi client, offrendo un modo pratico e versatile per connettersi da qualsiasi luogo con accesso a internet. È compatibile con la maggior parte dei moderni browser web e estende l’accessibilità delle risorse RDS a vari tipi di dispositivi, inclusi quelli non Windows. Fate riferimento alla mia guida Remote Desktop Web Client in Windows Server 2016, Windows Server 2019 e Windows Server 2022 – ICT Power per maggiori informazioni.

Per aggiornare il certificato del Remote Desktop Web Client potete usare i comandi PowerShell

Figura 9: Installazione del certificato nel Remote Desktop Web Client

Procedete quindi alla verifica di avvenuta installazione del certificato utilizzando un browser per controllare che ci sia il certificato corretto sull’RDS Web Access e sul Remote Desktop Web Client.

Figura 10: Certificato corretto installato sull’RDS Web Access

Figura 11: Certificato corretto installato sul Remote Desktop Web Client

Conclusioni

Garantire la sicurezza e l’efficienza dei servizi di Remote Desktop è essenziale. Utilizzando Let’s Encrypt e PowerShell avete a disposizione uno strumento potente e gratuito per gestire e rinnovare i certificati digitali dei vostri servizi RDS. Questa combinazione non solo riduce i costi associati alla gestione dei certificati, ma semplifica anche il processo, rendendo le vostre operazioni più sicure e affidabili. Con la giusta configurazione e manutenzione, potete ottimizzare la sicurezza dei vostri sistemi senza interruzioni o scadenze mancate.