Aggiornamento dei certificati SSL per Active Directory Federation Services in Windows Server 2012 R2, Windows Server 2016 e Windows Server 2019

Aggiornare i certificati SSL nei server ADFS (Active Directory Federation Services) e nei server WAP (Web Application Proxy) è un’operazione veloce che richiede poche operazioni per poter essere completata. È possibile aggiornare i certificati tramite poche cmdlet di PowerShell oppure, se utilizzate i Federation Services per le autenticazioni di Office 365, potete utilizzare il tool Azure AD Connect.

In questa guida ci occuperemo di:

  1. Richiedere un nuovo certificato ad una Certification Authority pubblica
  2. Installare lo stesso certificato in tutti i server della nostra farm ADFS
  3. Installare lo stesso certificato in tutti i Web Application Proxy
  4. Configurare il certificato SSL nei server ADFS
  5. Configurare il certificato per la Service Communication nei server ADFS
  6. Configurare il certificato SSL nei server WAP
  7. Verificare il funzionamento con Office 365

Lo scenario proposto prevede un server ADFS ed un server WAP che utilizzo per autenticare in maniera federata un dominio che utilizza Office 365. Nonostante l’infrastruttura sia basata su Windows Server 2012 R2, tutti i passaggi richiesti sono validi anche per Windows Server 2016 e Windows Server 2019.

Per chi di voi fosse interessato ad approfondire il funzionamento e le best practices di configurazione di ADFS consiglio la lettura delle guida Active Directory Federation Services in Windows Server 2016. Per chi invece vuole sapere come utilizzare ADFS per l’autenticazione ad Office 365 consiglio la lettura delle guide Configurare AD FS 2016 ed Office 365 con Azure AD Connect e Configurare Active Directory Federation Services 2016 e Azure Multi-Factor Authentication

Creazione della richiesta del certificato da sottomettere alla CA pubblica

Poiché sto utilizzando i Federation Services per autenticare i miei utenti in Office 365, il certificato che devo utilizzare deve essere rilasciato da una CA pubblica. Create una nuova richiesta certificato utilizzando la console di IIS Manager e da Server Certificates lanciate il wizard Create Certificate Request…

Figura 1: Creazione di una nuova richiesta per ottenere un certificato da una CA pubblica

Seguite i passaggi richiesti dal wizard inserendo le informazioni relative al nome da inserire nel certificato (nel mio caso sts.nicolaferrini.com) e agli altri campi richiesti, come mostrato nella figura sotto:

Figura 2: Nome da inserire nel certificato ed informazioni aggiuntive

Ricordatevi che la lunghezza minima della chiave pubblica da utilizzare deve essere 2048 bit. Fate riferimento all’articolo AD FS and Web Application Proxy SSL certificate requirements per maggiori informazioni sui prerequisiti che devono avere i certificati da usare con i Federation Services.

Figura 3: Inserimento del Cryptographic Service Provider e della lunghezza della chiave

Figura 4: Salvataggio della richiesta del certificato

Richiesta del certificato alla CA pubblica

Ho deciso di richiedere il certificato alla CA pubblica https://www.ssls.com/ . Dopo aver pagato il certificato, ho seguito la loro procedura ed ho inserito la richiesta generata con IIS (il contenuto del file .CSR) all’interno dell’apposito campo

Figura 5: Il contenuto del file CSR serve a generare la chiave pubblica ed il certificato

Ho confermato la proprietà del dominio e ho atteso di ricevere il certificato dalla CA.

Installazione del certificato

Dopo aver ricevuto il certificato dalla CA (in formato.crt), ho completato la procedura di richiesta certificato dallo stesso server da cui l’avevo iniziata. Ho effettuato la richiesta dal mio server ADFS, ma la richiesta può essere fatta da qualsiasi server. L’importante è importare la chiave pubblica generata dalla CA sullo stesso server da cui avere effettuato il wizard per la richiesta del certificato.

Riaprite la console di IIS Manager e da Server Certificates cliccate su Complete Certificate Request…

Figura 6: Completamento della richiesta del certificate

Configurazione del certificato SSL sul primo server ADFS

NOTA: Le modifiche fatte nella GUI non cambiano la configurazione impostata nell’HTTP.sys. Per completare la configurazione, è necessario lanciare i comandi PowerShell indicati, sia sul Federation Server che sul Web Application Proxy.

Adesso che avete installato il certificato sul server ADFS è possibile configurarlo in maniera molto semplice. Poiché il comando PowerShell per la configurazione del certificato ha bisogno del thumbprint, è possibile enumerare facilmente i thumbprint usando il comando dir Cert:\LocalMachine\My\ e successivamente lanciare la cmdlet Set-AdfsSslCertificate.

Nel mio caso ho filtrato i certificati che contenevano il nome sts con il comando dir Cert:\LocalMachine\My\ | findstr sts e successivamente ho lanciato la cmdlet Set-AdfsSslCertificate –Thumbprint 6BD57A3CC5DC62F4D8926F8CDF5E69596D0FB744. Trattandosi di un rinnovo di certificato, sulla stessa macchina sono presenti due certificati con lo stesso nome. Individuate quello nuovo che avete appena installato.

Figura 7: Enumerazione dei certificati e relativi thumbprint

Figura 8: Installazione del certificato SSL sul server ADFS

I server ADFS utilizzano il protocollo SSL per rendere sicure le comunicazioni web provenienti dai client e dai Web Application Proxy (WAP). Per questo motivo dobbiamo utilizzare due cmdlet diverse per gestire il certificato SSL ed il certificato di Service Communication. Le cmdlet sono Set-AdfsSslCertificate e Set-AdfsCertificate. A prima vista possono sembrare uguali ma in realtà non lo sono affatto.

La cmdlet Set-AdfsSslCertificate serve a configurare il certificato SSL per il binding HTTPS degli Active Directory Federation Services (AD FS) e, se sono configurati, dei servizi per la Device Registration. Il nome specificato nel certificato deve essere lo stesso che avete configurato per il nome dei Federation Services.

La cmdlet Set-AdfsCertificate invece viene utilizzata per configurare i certificati che AD FS utilizza per firmare, decifrare e rendere sicure le comunicazioni con gli altri server della farm.

Nel mio caso ho lanciato il comando Set-AdfsCertificate -CertificateType Service-Communications –Thumbprint 6BD57A3CC5DC62F4D8926F8CDF5E69596D0FB744 e ho riavviato i servizi AD FS con il comando Restart-Service adfssrv

Figura 9: Configurazione del certificato per la Service Communication

NOTA: Le modifiche fatte nella GUI non cambiano la configurazione impostata nell’HTTP.sys. Per completare la configurazione, è necessario lanciare i comandi PowerShell indicati, sia sul Federation Server che sul Web Application Proxy.

Verificate dalla console di AD FS Management che il certificato sia stato installato correttamente.

Figura 10: Verifica della corretta installazione del certificato in AD FS Management console

Esportazione del certificato rilasciato dalla CA Pubblica

Poiché la stessa procedura di installazione e configurazione del certificato deve essere ripetuta su tutti i server della farm ADFS e su tutti i Web Application Proxy, è necessario esportare il certificato ottenuto dalla CA pubblica ed installare lo STESSO certificato in TUTTI i server della farm. Lanciate da Start–>Esegui il comando certlm.msc e dalla console die certificati Computer esportate il certificato.

Figura 11: Esportazione del certificato da Installare in tutti i server della farm ADFS e in tutti i server WAP

Ricordatevi di esportare la chiave privata

Figura 12: Esportazione della chiave privata

Figura 13: Esportazione del certificato in formato PFX

Figura 14: Protezione del certificato con una password

Figura 15: Esportazione del certificato completata

Importazione del certificato negli altri server della farm ADFS e nei server WAP

Procedete quindi ad importare il certificato in tutti i server della farm ADFS e nei WAP. L’installazione del certificato è descritta nelle figure sotto:

Figura 16: Installazione del certificato a livello Machine

Figura 17: La chiave privata del certificato deve essere segnata come esportabile

Configurazione del certificato sui Web Application Proxy.

Pe configurare il certificato sui Web Application Proxy si usa la cmdlet Set-WebApplicationProxySslCertificate. Il comando da eseguire è molto semplice e nel mio caso ho utilizzato Set-WebApplicationProxySslCertificate -Thumbprint 6BD57A3CC5DC62F4D8926F8CDF5E69596D0FB744. Il thumbprint lo avevo già ricavato quando ho installato il certificato nel server ADFS.

Figura 18:Installazione del certificato nel Web Application Proxy

Ripetete la procedura su tutti gli altri server della farm.

Verifica del funzionamento

Per verificare il corretto funzionamento dei nuovi certificati mi sono collegato al portale di Office 365 e ho inserito la username di un utente del mio dominio federato. Sono stato reindirizzato al mio federation server sts.nicolaferrini.com e ho verificato che il certificato presentato dal server ADFS fosse quello appena installato.

Figura 19: Il Federation Server presenta il certificato corretto

Aggiornamento dei certificati utilizzando il tool Azure AD Connect

Dalla versione 1.1.513.0 del tool Azure AD Connect è possibile aggiornare in maniera molto semplificata i certificati di una farm ADFS basata su Windows Server 2012 R2 o versioni successive. Lanciando il tool è possibile scegliere Manage Federation e successivamente la voce Update AD FS SSL certificate. Io sto utilizzando la versione 1.2.70.0, che è l’ultima disponibile, scaricabile al link https://www.microsoft.com/en-us/download/details.aspx?id=47594

La procedura è molto semplice ed è mostrata nelle figure sotto:

Figura 20: Gestione della farm ADFS cin il tool Azure AD Connect

Figura 21: Aggiornamento dei certificati della farm ADFS con il tool Azure AD Connect

Figura 22: Inserimento delle credenziali di un Global Admin del tenant di Office 365

Figura 23: Inserimento delle credenziali di amministratore della farm ADFS

I server ADFS vengono rilevati automaticamente. Nel caso non tutti i server della farm fossero visualizzati è possibile inserirli manualmente.

Figura 24: Server ADFS della farm

Nella schermata successiva è anche possibile inserire i Web Application Proxy. Il mio server WAP è in workgroup e al momento dell’aggiunta mi viene chiesto di inserire le credenziali amministrative per la connessione e successiva installazione del certificato.

Figura 25: Connessione al Web Application Proxy

Una volta che avete dichiarato quali server ADFS e quali server WAP volete gestire, il tool Azure AD Connect vi chiederà quale certificato volete installare. Il certificato deve essere in formato .PFX e al momento di aggiungerlo vi verrà chiesto la password per accedere alla chiave privata. IL vero vantaggio del tool consiste infatti nel distribuire e successivamente installare il certificato, oltre a configurare i servizi ADFS e WAP. Fantastico!

Figura 26: Certificato da distribuire ed installare nella farm

A questo punto il tool Azure AD Connect verificherà se tutti prerequisiti sono rispettati ed in particolar modo se:

  • Il nome del certificato corrisponde al nome del federation service oppure se il certificato è un wildcard.
  • Il certificato è valido per più di 30 giorni
  • La catena di certificati è valida
  • Il certificato è protetto da password

Se tutti i prerequisiti sono rispettati la configurazione può proseguire, come mostrato in figura:

Figura 27: I prerequisiti sono rispettati e la configurazione può proseguire

Con pochissimi passaggi siamo riusciti quindi a distribuire e configurare i certificati su tutti i server della nostra infrastruttura ADFS.

Conclusioni

L’aggiornamento dei certificati ADFS e WAP in Windows Server 2012 R2, Windows Server 2016 e Windows Server 2019 è un’operazione davvero molto semplice e viene fatta con pochissimi comandi di PowerShell. Maggiori informazioni sono disponibili alla pagina https://docs.microsoft.com/it-it/windows-server/identity/ad-fs/operations/manage-ssl-certificates-ad-fs-wap

Grazie ad Azure AD Connect la configurazione è ancora più semplice e veloce e ci permette di aggiornare i certificati della farm con pochissimi clic! Davvero ben fatto!