All'avvio di Servizi certificati AD, insiste sulla convalida del proprio certificato (il certificato CA subordinato). Ciò comporta la verifica che il certificato CA non sia stato revocato, ottenendo il CRL di riferimento dai Punti di distribuzione CRL estensione trovata in quel certificato. Se il CRL è stato spostato e il CRL non è aggiornato in questi punti, la convalida fallirà e il servizio si rifiuterà di funzionare.
A questo punto, puoi scegliere tra quattro strategie per recuperare la situazione:
-
Ripristinare la CA radice o, più precisamente, il CRL emesso dalla CA radice, in cui la CA subordinata si aspetta che siano. Per impostazione predefinita, in un contesto di Active Directory, CRL si troverà in una posizione che dipende dal nome della macchina (avviare lo strumento "Siti e servizi", attivare "mostra il nodo servizi", quindi individuare il nodo "CDP"). Questi sono oggetti AD, che possono essere copiati e spostati (un oggetto AD è "solo" una raccolta di attributi) in modo da poterlo scriptare per farlo automaticamente.
-
Spingi il CRL dalla CA radice nell'archivio macchina locale della CA subordinata, in modo che i Servizi certificati possano vederli anche se non li trova nel punto di distribuzione designato. Questo può essere fatto con la GUI ( mmc.exe
console), o programmaticamente ( CertAddCRLContextToStore () ) (Ho eseguito quest'ultimo, richiamando la funzione Win32 da un pezzo di C # ricompilato dinamicamente da uno script PowerShell ...).
-
Rinnovare il certificato CA subordinato, riutilizzando lo stesso nome e la stessa chiave, ma con un nuovo certificato con punti di distribuzione CRL che puntano al percorso in cui la CA radice pubblica ora il CRL.
-
Elimina la CA subordinata e installane una nuova, riutilizzando lo stesso nome e la stessa chiave. Questa è una variante della strategia precedente, ma più completa. Per evitare di perdere il controllo di tutti i certificati precedentemente emessi (questi sono ancora validi e si desidera comunque essere in grado di revocarli), è necessario reinserirli nella nuova CA utilizzando certutil
( certutil -importCert
per reimportare un certificato, certutil -revoke
per rendere la CA nuovamente consapevole di una revoca passata). Questo è un intervento chirurgico alto e disperato; non farlo fino a quando tutte le altre strategie non hanno fallito.
In generale, ADCS è stato progettato in modo da integrarsi in modo approfondito nelle strutture di Active Directory e le ramificazioni complete sono complesse e scarsamente documentate. Le cose funzionano "magicamente" per impostazione predefinita e scopri perché quando esegui un cambiamento apparentemente non correlato e si rompono.