Pokud vytváříte certifikáty například pro Remote Desktop, TS Gateway, TS Web Access a podobně, je nutné mít ve své PKI infrastruktuře na certifikační autoritě fungující a správně nastavené publikace CRL (Certificate Revocation List). (Klasická chyba, kterou dostáváme, když toto nemáme správně nastaveno je A revocation check could not be performed for the certificate).
Konfigurace CA
Nejprve nakonfigurujeme doménovou Windows certifikační autoritu.
- Spustíme konzoli certifikační autority Administrative Tools - Certification Authority.
- Zvolíme vlastnosti na nainstalované certifikační autoritě a zvolíme záložku Extensions.
- Zde k již uvedeným umístění CRL Distribution Point - CDP a Authority Information Access - AIA (potřebujeme obě) přidáme nové HTTP lokace, které budeme používat pro přístup z internetu.
Pro CDP například pro DNS veřejnou adresu pki.contoso.com zadáme následující URL adresu:
http://pki.contoso.com/CertEnroll/<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl
(pozor, jedná se o certificate revocation list – přípona crl)
Zde také zaškrtneme volby Include in CRLs. Client use this to find Delta CRL locations a Include in the CDP extension of issued certificates.
a pro AIA tuto adresu:
http://pki.contoso.com/CertEnroll/<ServerDNSName>_<CaName><CertificateName>.crt
(pozor, jedná se o certifikát autority – přípona crt)
zde zvolíme Include in the AIA extension od issued certificates.
- Vytvoříme nový CRL list volbou Publish na Revoked Certificates v CA konzoli.
Konfigurace IIS
O přístup k CDP a AIA slouží složka CertEnroll na IIS. K tomu potřebujeme mít nainstalovanou Web Server roli s podporou ASP (ale nemusíme mít nainstalovanou CA roli Certification Authority Web Enrollment ani žádný Web Service). V IIS potřebujeme složku CertEnroll, pokud jí zde nemáme, provedeme její nastavení příkazem:
certutil –vroot
Jedná se o složku umístěnou v C:\Windows\system32\CertSrv\CertEnroll, která obsahuje soubory crl listů a certifikát autority. Protože jeden soubor má defaultně v názvu znak +, tak musíme na IIS povolit Double Escaping. To provedeme následujícími příkazy:
cd %windir%\system32\inetsrv\
Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
iisreset
Vypublikování CertEnroll
Složku CertEnroll na IIS je nyní nutné vypublikovat na firewallu, aby byla veřejně dostupná, a to na adrese, kterou jsme zadali v Extensions v CA. Vytvoříme tedy na FW HTTP pravidlo, které bude z veřejné adresy pki.contoso.com směrovat na vnitřní server na kterém máme IIS se složkou CertEnroll. HTTP adresy, které potřebujeme vypublikovat zjistíme velice jednoduše podle jmen souborů ve složce C:\Windows\system32\CertSrv\CertEnroll. Například pro CA s názvem ContosoCA a server s názvem pki jsou to:
/certenroll/ContosoCA.crl
/certenroll/ContosoCA+.crl
/certenroll/pki.contoso.local_ContosoCA.crt
(Pokud váš FW neumí určit jednotlivé adresy, je možné vypublikovat celou složku CertEnroll.)
Já jsem publikaci prováděl na TMG, k tomu je podrobnější návod k dispozici zde nebo zde.
Kontrola nastavení
Otestujeme nastavení, to můžeme provést pomoci Enterprise PKI. Spustíme PKIView.msc, zde vidíme zda jsou CDP a AIA dostupné.
Druhou možnosti kontroly je pomoci certutil následujícími příkazy:
certutil -URL http://pki.contoso.com/CertEnroll/ContosoCA.crl
certutil -URL http://pki.contoso.com/CertEnroll/pki.contoso.local_ContosoCA.crt
V prvním případě zvolíme CRLs a dáme Retrieve, obě adresy jak Base CRl tak Delta CRL musí vrátit OK. V druhém případě zvolíme volbu Certs a Retrieve.
Pokud vydáme certifikát, tak máme ještě možnost zkontrolovat dostupnost CDP a AIA z adres certifikátu pomoci příkazu:
certutil –verify –urlfetch MyCertificate.cer
Některé další odkazy, které jsem při konfiguraci CRL používal:
http://social.technet.microsoft.com/wiki/contents/articles/11750.step-by-step-guide-single-tier-pki-hierarchy-deployment.aspx#Install_Enterprise_Root_CA
http://www.kurtdillard.com/StudyGuides/70-640/6.html