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:
- Certification Authority Guidance
- Securing Public Key Infrastructure (PKI)
- Server Certificate Deployment
- AD CS Step by Step Guide: Two Tier PKI Hierarchy Deployment
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:
- 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
- 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.
- 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:
1 |
certutil –CRL |
Copiare sul server web d pubblicazione la CRL e il certificato tramite i comandi:
1 2 |
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:
1 |
certutil -setreg ca\ValidityPeriodUnits "5" |
La chiave di registro in cui vene mantenuta tale impostazione è:
1 |
HKLM\System\CurrentControlSet\Configuration\CAName\ValidityPeriodUnitis |
Al termine della configurazione riavviare il servizio della CA, ad esempio tramite il comando:
1 |
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: