Configuring Certificate AutoEnrollment


Configuring Certificate AutoEnrollment

Certificate Auto Enrollment logo

M-am gandit sa scriu ceva despre cum trebuie configurat autoenrollment-ul certificatelor pentru a funcționa corect. Cum se face… intai va trebui sa publicam un template care sa faca ce vrem noi. Ne logam pe serverul de CA sau folosim RSAT si deschidem certsrv.msc pentru a administra certificatele. Facem click dreapta si selectam Manage.

CA

Apoi duplicam un template predefinit si il configuram in functie de necesitati. In cazul nostru folosim template-ul Workstation Authentication.

CADuplicate

Apoi partea importanta, modificam securitatea template-ului creat corespunzator. Daca spe exemplu vrem sa facem autoenroll atunci trebuie selectata si optiunea de autoenroll.

CATemplateSec

Important:

Daca vrem sa permitem Autoenroll este obligatioriu sa selectam si permisiunea de Enroll.

Pe proprietatile Template-ului publicat permisiunile de baza ce trebuiesc asignate pentru a functiona corect sunt:

  • Authenticated Users (implicit) – Read (acesta este obligatoriu altfel nu o sa mearga autoenroll)
  • Domain Admins (implicit) – Read, Write, Enroll
  • Domain Computers (implicit) – Enroll + Autoenroll ca sa faca ….autoenroll
  • Enterprise Admins (Implicit) – Read, Write, Enroll
  • Daca avem Users sau Computers din alte domenii trebuiesc adaugate permisiunile pe template.

Cam atat cu configurarea template-ului…

Mai departe configuram o Politica de Grup prin care setam sa faca autoenroll si o aplicam pe Computers sau Users in functie de cum am configurat template-ul. In cazul nostru vrem sa facem autoenroll pe computer deci modificam setarile corespunzatoare computerelor si aplicam politica computerelor sau grupului de computere, de exemplu Domain Computers.

Setarile de configurare pentru Autoenrollment in GPO se gasesc la :

Computer Configuration\Policies\Windows Settings\Security Settings\Public Key Policies\Certificate Services Client – Auto-Enrollment Settings

La Configuration Model selectam Enabled.

GPOaE

Asignam (link) politica la Domeniu sau la un OU in funcție de caz, varificam ca la Scope sa vizeze Computer objects sau un grup de Computer objects. In cazul meu am restrans aplicabilitatea la doar un singur host.

gpo1

In aceasta fereastra la Delegation mergem pe Advanced, si verificam ca acel Computer sau Grup sa aibă drept de Read si Apply group policy.

gpoperm

Cam asta este si cu configurarea politicii de Autoenrollment…

Acum, pe client pentru a forta Autoenrollment-ul, deschidem o ferastra CMD si executam gpupdate /force.

Apoi sa verificam executand MMCCertificatesLocal Computer si verificam containerul Personal. Acolo ar trebui sa apara un alt container Certificates care sa contina certificatul dorit.

MMC

Asta este tot ce trebuie configurat.

Daca ceva nu merge? Ce fac?

Dupa ce am configurat tot ce era de configurat pe partea de server (Politica, Template, Permisiuni) verificam setarile din partea de client. In primul rand sa vedem daca se aplica politica ce face posibil autoenrollmentul. Tool-urile sunt cele obisnuite cu care sunt sigur ca sunteti familiarizati de exemplu gpresult /h c:\report.html, rsop.msc, Group Policy logging, etc.

Odata ce suntem siguri ca politica se aplica corespunzator verificam si in registri pentru a fi siguri ca a fost activat autoenrollment-ul. Daca se configureaza autoenrolment pentru User sa va deschide HKEY_CURRENT_USER, daca se face pentru computer se va merge pe HKEY_LOCAL_MACHINE. In cazul nostru varianta a doua deci calea va fi:

HKLM\SOFTWARE\Policies\Microsoft\Cryptography\AutoEnrollment

Daca AutoEnrollment-ul a fost configurat cum trebuie acolo va fi o inregistrare DWORD AEPolicy cu valoarea 7. Atentie daca nu exista aceasta inregistrare Autoenrollment-ul NU FUNCTIONEAZA.

regesettings

Ca si informatii aditionale aveti un tabel cu valorile posibile ale inregistrarii AEPolicy:

Hex Value Setting Configuration
0x00000000 Autoenrollment Enabled
0x00000001 Autoenrollment Enabled, Update Certificates that user   certificates templates configured
0x00000006 Enabled, Renew expired certificates, update pending   certificates, and remove revoked certificates configured
0x00000007 Enabled, Update Certificates that user certificates   templates configured, Renew expired certificates, update pending   certificates, and remove revoked certificates configured
0x00008000 Disabled

Dupa ce am vazut ca se aplica corect politica, trebuie sa vedem daca avem drepturi pe template.

MMCCertificatesLocal Computer si click dreapta pe containerul Personal. Selectam All tasks – Request New Certificate. Apasam Next de doua ori si acolo ar trebui sa vedem daca putem face manual Enroll la acel template. Daca nu vedem Template-ul selectam casuta din dreptul Show all templates.

Odata ce o gasim, vedem ce mesaj apare in dreptul ei, de exemplu „You do not have permissions to view/enroll this type of certificate.” – in acest caz trebuiesc revazute permisiunile pe template.

Daca se aplica politica, am drepturi dar nu apare acea inregistrare?

Daca acesta este cazul putem sa pornim Logging-ul pentru a afla mai multe detalii. Deschidem Regedit si configuram logging-ul in functie de aplicabilitatea template-ului (User sau Computer).

HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Autoenrollment (Computer AE)

HKEY_CURRENT_USER\Software\Microsoft\Cryptography\Autoenrollment (User AE)

Cream  o inregistrare DWORD numita AEEventLogLevel cu valoarea 0.

Untitled

Ne uitam in eventvwr.msc in Application log pentru mai multe detalii dupa ce incercam sa fortam procesul folosind gpupdate /force. Acum, in functie de mesaj puteti gasi online tot felul de solutii dar am sa va dau totusi un exemplu in care AutoEnrollment-ul nu functiona corespunzator.

error

Mai mult incercam si sa facem enroll manual sa vedem ce apare…

MMCCertificatesLocal Computer si click dreapta pe containerul Personal. Selectam All tasks – Request New Certificate. Apasam Next de doua ori si acolo ar trebui sa vedem daca putem face manual Enroll la acel template.

error2

Ce trebuie verificat in acest caz? Pe serverul de CA trebuie sa verificam permisiunile de COM Security pentru grupul Certificate Service DCOM Access. Fiecare server de certificate are un astfel de grup local. Daca avem mai multe servere CA, aceste setari trebuies verificate pe fiecare din ele. Deci verificam sa aiba permisiuni de Local Access si Remote Access.

StartAccessioriesComponent Services – expandam Computers si dam click dreapta pe My Computer.

Navigam la COM Security si accesam Access PermissionsEdit Limits. Verificam permisiunile Grupului mentionat anterior.

Component services

Totul bine pana acum. Mai departe verificam Membrii grupului Certificate Service DCOM Access pe serverul de CA.

Si aici era problema. Acest grup reprezinta cine se poate conecta la serverul de CA din acel enterprise. By default Membrii acestui Grup sunt NT AUTHORITY\Authenticated Users. Aceasta setare merge fara probleme in cazul in care ai un single forest-single domain, dar daca ai mai multe domenii / foresturi cum se intampla la firmele mari, atunci trebuies adaugati ca membrii in acest grup, acele grupuri care trebuie sa contacteze CA-ul respectiv. De exemplu daca vrem sa impingem autoenroll pentru calculatoarele din doua domenii vom adauga ceva de genul:

  • DOMAIN1\Domain Computers
  • DOMAIN2\Domain Computers

La fel daca este cazul pentru User Autoenrollment.

Alte resurse utile:

http://blogs.msdn.com/b/windowsvistanow/archive/2008/04/08/troubleshooting-certificate-enrollment.aspx

Configure AutoEnrollment:

http://technet.microsoft.com/en-us/library/cc731522.aspx

Certificate Autoenrollment in Windows Server 2003:

http://technet.microsoft.com/en-us/library/cc778954(v=ws.10).aspx

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s