Főoldal » Public Key Infrastructure (PKI) 3. rész – konkrét probléma

Public Key Infrastructure (PKI) 3. rész – konkrét probléma

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

Megvolt az elmélet (1. rész, 2. rész) – jöhetett a gyakorlat. Adott helyen egy nyomozás kiderítette, hogy az ISA szerver lejárt tanúsítványa okoz gondot a Mátrixban hálózatban.


Mivel tartományi gépről volt szó, s Enterprise CA-ról, a furcsa az volt, hogy nem kért/kapott magának automatikusan új tanúsítványt. Az összes többi gép a hálózatban rendben működött – de az ISA nem, az automatikus igénylés folyamatosan RPC-hibára panaszkodott.


Ekkor vettem végig az előző cikkben említett módszereket: az mmc konzolon keresztüli frissítés szintén RPC-hibára panaszkodott, a webes felületen pedig nem volt elérhető a Computer sablon. Mielőtt még nekiálltam „kézzel” generálni, átfutottam ezt is, itt is a már említett módszerek voltak felsorolva:


The “Advanced Certificate Enrollment and Management” white paper describes various methods for requesting certificates from an enterprise CA. For example, you can request certificates by using the Web-based CA interface, by creating .inf files that contain certificate information, by using the Certreq.exe utility, and by using the Certutil.exe utility.


Következett a kézi generálás a CertReq használatával. Ha egy új tanúsítványt hozunk létre, akkor alapnak elég ez:


[NewRequest]


Subject=”CN=computer.domain.hu”
KeyLength=1024
MachineKeySet=TRUE
Silent=TRUE


Ha már létezőt akarunk megújítani, akkor a


certutil -store my


paranccsal kilistázott tanúsítványokból (értelemszerűen nem az Archived! jelzéssel ellátottból) tudjuk kiolvasni azt az adatot, amit az alábbi két sor egyike tartalmaz (amit majd az .inf állományhoz kell illesszünk):


UseExistingKeySet=TRUE
KeyContainer=”ea725e035fb897b670fb28f41358ae5f_4a40ddf8-1ce7-4886-bf3d-a97870755888″


A kérelem tartalmát a certutil -dump newreq.req parancs segítségével tudjuk megnézni, ha viszont megvan a tanúsítvány, akkor a certreq –accept utasítással tudjuk importálni a cél-gépre.


A kérelem létrehozásakor egy Access denied hibaüzenetet fogadott, így a %AllUsersProfile%\application data\microsoft\crypto\rsa\machinekeys mappának minden állományán átállítottam a jogokat (Adminoknak full jog – valamiért nem örökölte). Ezután már a „bővített” kérést is elfogadta, mármint létrehozta a request állományt. A request-et viszont a CA továbbra sem fogadta el, a sablon hiányára vonatkozva (The request contains no certificate template information 0x80094801 (-2146875391). Denied by Policy Module 0x80094801).


Ha betettem a


[RequestAttributes]


CertificateTemplate=Computer


sorokat, a CA továbbra is beintett, de a Computer helyett Machine sablont kérve máris más jellegű hibaüzenet került elő.


(Mivel innentől egy másik irányba mentem el, leírom egy általános kérelem formáját:


[NewRequest]


Subject = “CN=computer.domain.hu”
KeySpec = 1
KeyLength = 1024
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = “Microsoft RSA SChannel Cryptographic Provider”
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0


[RequestAttributes]


CertificateTemplate=Machine


Ezt tudjuk a mi igényünk szerint átszabni.)


Szóval a fenti próbálkozás kapcsán a The DNS name is unavailable and cannot be added to the Subject Alternate name. 0x8009480f (-214875377) hibaüzenet fogadott. Már kicsit kóválygott a fejem, így anélkül, hogy logikusan végig-gondoltam volna az értelmét, elindultam ebbe az irányba. Lefuttattam az alábbi parancsot:


CERTUTIL -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2


utána kaptam (kiemelés tőlem):


SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\TTRootCA3\PolicyModules\CertificateAuthority_MicrosoftDefault.Policy\EditFlags:


Old Value:


EditFlags REG_DWORD = 11014e (1114446)
EDITF_REQUESTEXTENSIONLIST — 2
EDITF_DISABLEEXTENSIONLIST — 4
EDITF_ADDOLDKEYUSAGE — 8
EDITF_BASICCONSTRAINTSCRITICAL — 40 (64)
EDITF_ENABLEAKIKEYID — 100 (256)
EDITF_ENABLEDEFAULTSMIME — 10000 (65536)
EDITF_ENABLECHASECLIENTDC — 100000 (1048576)


New Value:


EditFlags REG_DWORD = 15014e (1376590)
EDITF_REQUESTEXTENSIONLIST — 2
EDITF_DISABLEEXTENSIONLIST — 4
EDITF_ADDOLDKEYUSAGE — 8
EDITF_BASICCONSTRAINTSCRITICAL — 40 (64)
EDITF_ENABLEAKIKEYID — 100 (256)
EDITF_ENABLEDEFAULTSMIME — 10000 (65536)
EDITF_ATTRIBUTESUBJECTALTNAME2 — 40000 (262144)
EDITF_ENABLECHASECLIENTDC — 100000 (1048576)


CertUtil: -setreg command completed successfully.
The CertSvc service may need to be restarted for changes to take effect.


Ennek értelemszerűen akkor van értelme, ha a kérelmet kiegészítjük az alábbi sorral:


[RequestAttributes]
SAN=dns=abc.domain.hu&dns=ldap.domain.hu


De esetünkben nem ez volt a gond, így természetesen ez sem hozott megoldást.


Össze voltam zavarodva.


Megpróbáltam visszatérni a grafikus felületre, így ismét a webes igénylést vettem górcső alá. Jött az ötlet, miszerint másoljam le a Computer tanúsítvány-sablont (mert a CA-n mégiscsak ez volt a neve, nem Machine), s ez alapján hozzam létre az igényt. A Certificate Templates-en jobb klikk, másolás megtörtént, s ott átállítottam, hogy Subject Name fülön Supply in the request szerepeljen. A webes oldalon való megjelenéshez még szükséges egy New / Certificate template to issue. A probléma nem oldódott meg ezután sem…


Mondhatni szerencsére közbejött más intéznivaló, így ezt félbehagytam.


Csak arra nem gondoltam, ami a legkézenfekvőbb lett volna: a gép újraindítása. Ez ugyanis (mint időközben kiderült) megoldotta a problémát, kapott végre egy normális tanúsítványt (lehet, hogy az egész csak jogosultsági gond volt, amit már az elején megjavítottam?).


Az új tanúsítvány esetén még arra kell figyelni, hogy ISA lévén, még van további tennivalónk: az ISA konzolon, a Config / Networks / Internal / Web Proxy fülön a tanúsítványra rá kell mutatni.



Nem tartozik a témához, de menet közben begyűjtöttem pár OID-ot (amelyek itt vannak említve), pár használtabb:


[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
OID=1.3.6.1.5.5.7.3.2 ; Client Authentication
OID=1.3.6.1.4.1.311.20.2.2 ; Smart Card Logon


Egyéb hasznos certutil parancsok:


certutil -store my: a tanúsítványok parancssoros listázása és megjelenítése
certutil -viewstore my: a tanúsítványok grafikus listázása és megjelenítése
certutil -viewdelstore my: a tanúsítványok grafikus felületen történő törlése
certutil -delstore my <certid>: a <certid> azonosítóval rendelkező tanúsítvány törlése


További olvasnivalók:


CA hibaüzenetek itt.


A Certreq szintaxisa, az inf állomány lehetséges mezői, típusai itt.


(Forrás: Asteriksz blogja)

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

HOZZÁSZÓLÁS

Ha nem hagy nyugodni az, amit a cikkben olvastál, akkor nyugodtan írd meg kérdésed vagy észrevételed kommentbe. Így szerzőnk könnyen tud neked válaszolni.

Vélemény, hozzászólás?