Deploy PKI in Windows Server 2016 – Parte 3 Installazione Subordinate CA

L’implementazione di una Certification Authority (CA) Two-Tier (a due livelli) si conclude con l’installazione della Subordinate CA anche detta issuing CA. La trattazione delle componenti di una PKI e della configurazione di un server web per la pubblicazione della CRL e dei certificati delle CA è disponibile nel precedente articolo Deploy PKI in Windows Server 2016 – Parte 1, mentre nell’articolo Deploy PKI in Windows Server 2016 – Parte 2 è stata descritta l’installazione e la configurazione della Root CA Offline.

Di seguito analizzeremo quindi l’installazione e la configurazione della Subordinate CA Offline, nell’ipotesi di voler realizzare una CA Two-Tier (a due livelli) facendo riferimento al seguente schema che verrà utilizzato come scenario di esempio.

La Subordinate CA sarà di tipo Enterprise in modo da poter essere utilizzata in modo integrato con Active Diectory e poter utilizzare i modelli di certificato, quindi il server che assolverà il ruolo di Subordinate CA dovrà essere membro del dominio Active Directory.

Per ulteriori informazioni si vedano:

Installazione e configurazione della Subordinate CA

Per configurare il servizio di CA occorre aggiungere il ruolo Active Directory Certificate Services selezionando l’installazione del servizio Certification Autority.

Terminata l’installazione è possibile configurare il servizio della CA in base alle seguenti impostazioni utilizzando le credenziali di un account membro del gruppo Enterprise Admin di Active Directory. Durante la procedura di configurazione verrà creata una richiesta di certificato per generare il certificato della Subordinate CA che dovrà poi essere gestito dalla Root CA.

Tipo installazione CA Enteprise
Tipo CA Subordinate
Provider servizio di crittografia RSA#Microsoft Software Key Storage Provider
Lunghezza chiave 4096
Algoritmo hash per firma certificati SHA512
Nome ICTPower Issuing CA
Validità certificato CA 10 anni
Validità certificati emessi dalla CA 5 anni
Path database e logs S:\Windows\system32\CertLog
Path certificato CA e CRL C:\Windows\System32\CertSrv\CertEnroll

Configurazione dell’accesso al server Web per la pubblicazione della CRL

Per consentire l’accesso al server web da parte della Subordinate CA l’approccio più corretto è quello di creare sul server web un account con privilegi di lettura e scrittura su una share che punti alla cartella che conterrà le CRL e i certificati delle CA come illustrato nel precedente articolo Deploy PKI in Windows Server 2016 – Parte 1. Nello scenario di esempio sul server web Web01 si ipotizza che siano state eseguite le seguenti configurazioni:

  1. Creazione di un record DNS crl di tipo A per il server web consenta l’accesso a quest’ultimo tramite il nome crl.ictpower.local
  2. Creazione di un account CAUpdate che verrà utilizzato dal server Root CA e Subordinate CA per accedere alla cartella condivisa in cui copiare CRL e certificato CA.
  3. Creazione della share CertEnroll per concedere l’accesso in lettura e scrittura alla cartella S:\CertEnroll tramite l’account CAUpdate.

Sul server Subordinate CA occorre quindi memorizzare sull’account che verrà utilizzato per aggiornare CRL e certificato CA sul server web le credenziali dell’account CAUpdate specificando come indirizzo del server crl.ictpower.local.

Richiesta del certificato per Subordinate CA

Dalla Root CA sottomette la richiesta della Subordinate CA che nel processo di configurazione è stata memorizzata sul disco di sistema C: e volendo è raggiungibile dalla Root CA tramite il percorso URL \\casub.ictpower.local\c$.

Emettere il certificato per la Subordinate CA.

Esportare il certificato per la Subordinate CA in formato PKCS #7 (.PB7) selezionando l’opzione di includere tutti i certificati (ovvero il certificato della Root CA) nel percorso URL \\casub.ictpower.local\c$.

Installazione del certificato della Subordinate CA

Prima di installare il certificato della CA aggiungere l’url http://crl.ictpower.local all’elenco dei Trusted Sites sul server Subordinate CA.

Installare il certificato della CA precedente generato dalla Root CA ed esportato in C:\ CASub.ictpower.local_ictpower-CASUB-CA.p7b.

Avviare il servizio della Subordinate CA.

Configurazione Estensioni della Subordinate CA per impostare i CRL (Certificate Revocation List) Distribution Points (CDP)

Lo scopo delle estensioni CRL CDP è quello di indicare ai client dove trovare le CRL aggiornate firmate dalla CA, tali informazioni verranno poi inserite nei certificati generati dalla CA.

Per impostazione predefinita vi sono quattro CRL CDP già configurati e su alcuni di essi occorre eseguire alcune impostazioni affinché l’unico riferimento alla CRL che verrà inserito nei certificati rilasciati sia quello dell’URL del server Web che pubblica la CRL. Nello scenario di esempio l’URL di pubblicazione della CRL è http://crl.ictpower.local/CertEnroll.

Come riportato in Optimizing the Revocation Experience conviene però gestire la CRL solo tramite http disabilitando quindi le opzioni di pubblicazioni nel CDP relativo a LDAP:

“Although AD DS enables publication of CRLs to all domain controllers in the forest, we recommend implementing HTTP instead of LDAP for revocation information publication. Only HTTP enables the use of the ETag and Cache-Control: Max-age headers providing better support for proxies and more timely revocation information. In addition, HTTP provides better heterogeneous support as HTTP is supported by most Linux, UNIX, and network device clients.”

Il CRL CDP locale è usato dalla CA e non necessita di essere modificato.

Il CRL CDP ldap deve essere modificato in modo da non pubblicare la CRL, volendo è anche possibile rimuovere tale CRL CDP dal momento che di fatto non verrà utilizzato.

Il CRL CDP http è già impostato in modo da non pubblicare la CRL, volendo è anche possibile rimuovere tale CRL CDP dal momento che di fatto non verrà utilizzato.

Il CRL CDP file è già impostato in modo da non pubblicare la CRL, volendo è anche possibile rimuovere tale CRL CDP dal momento che di fatto non verrà utilizzato.

Creare un CRL CDP per l’URL http con le opzioni di inclusione nella CRL per l’URL http://crl.ictpower.local/CertEnroll/<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl.

Applicare le modifiche riavviando i servizi della CA.

Configurazione Estensioni della Subordinate CA per impostare gli Access Information Access (AIA) Distribution Points (CDP)

Lo scopo delle estensioni AIA CDP è quello di indicare ai client dove trovare il certificato della CA per eseguire la verifica dell’attendibilità nel caso in cui il certificato non contenga al suo interno la catena dei certificati, tali informazioni verranno poi inserite nei certificati generati dalla CA.

L’ AIA CDP locale per impostazione predefinita non viene incluso nei certificati e quindi non necessita di essere modificato.

L’AIA CDP ldap deve essere modificato in modo da non essere utilizzato per pubblicare i certificati, volendo è anche possibile rimuovere tale AIA CDP dal momento che di fatto non verrà utilizzato.

L’AIA CDP http per impostazione predefinita non viene incluso nei certificati e quindi non necessita di essere modificato, volendo è anche possibile rimuovere tale AIA CDP dal momento che di fatto non verrà utilizzato.

L’AIA CDP file per impostazione predefinita non viene incluso nei certificati e quindi non necessita di essere modificato, volendo è anche possibile rimuovere tale AIA CDP dal momento che di fatto non verrà utilizzato.

Creare un AIA CDP per l’URL http con le opzioni di inclusione nella CRL per l’URL http://crl.ictpower.local/CertEnroll/<ServerDNSName>_<CaName><CertificateName>.crt.

Applicare le modifiche confermando il riavvio dei servizi delle CA.

Pubblicazione della CRL e del certificato della Subordinate CA

E’ possibile pubblicare la CRL della Subordinate CA tramite interfaccia grafica

Oppure tramite il comando:

certutil –CRL

Copiare sul server web d pubblicazione la CRL e il certificato tramite i comandi:

copy /Y “C:\Windows\System32\CertSrv\CertEnroll\*.crl” \\crl.ictpower.local\CertEnroll
copy /Y “C:\Windows\System32\CertSrv\CertEnroll\*.crt” \\crl.ictpower.local\CertEnroll

Configurazione della validità dei certificati emessi

Per default la validità dei certificati emessi da una CA Enterprise è di due anni, ma tale impostazione è modificabile tramite certutil che a sua volta modificherà le impostazioni nel registro.

Dal momento che la durata del certificato della CA è stato impostato a 10 anni con previsione di rinnovo ogni 5 anni la validità dei certificati emessi verrà impostata a 5 anni tramite il comando:

certutil -setreg ca\ValidityPeriodUnits “5”

La chiave di registro in cui vene mantenuta tale impostazione è:

HKLM\System\CurrentControlSet\Configuration\CAName\ValidityPeriodUnitis

Al termine della configurazione riavviare il servizio della CA, ad esempio tramite il comando:

net stop certsvc & net start certsvc

Verifica della configurazione della CA

Terminata l’installazione e la configurazione della Subordinate CA occorre verificare che la PKI funzioni correttamente, uno strumento utile per eseguire tale verifica è il tool pkiview.msc: