Servera sertifikāta mērķis izskatās pareizs, atslēga sakrīt, datumi ir kārtībā, un savienojums joprojām neizdodas ar unsupported certificate purpose. Detaļa, kas to atrisina, parasti ir tajā pašā rindā kā kļūda: dziļuma vērtība un subject, kas nosauc augstāk ķēdē esošu sertifikātu. Tiek izpildīti divi dažādi testi, un tikai viens no tiem attiecas uz galveno sertifikātu. To salīdzinājums izskaidro, kāpēc servera sertifikāta nomaiņa neko nemaina.

Kuru sertifikātu pārbaudītājs patiešām noraidīja

Ķēde nav viens objekts, kas atkārtots trīs reizes. Galvenais sertifikāts nes servera vārdu un atslēgu, starpnieka sertifikāti to saista ar sakni, un katram ir savs derīguma termiņš, ierobežojumi un lietojumi. Kad kļūda nosauc dziļumu, šis skaitlis norāda pozīciju ķēdē, kuru uzbūvēja pārbaudītājs, un tā var nebūt pozīcija, kuru gaidāt, ja serveris sūta negaidītu ķēdi.

Lasiet tā dziļuma sertifikāta laukus, nevis sertifikāta, kuru uzskatījāt par vainīgu. Pieprasiet divus paplašinājumus, kas ierobežo izsniegšanu, tā vietā, lai izgāztu katru lauku, jo atbilde gandrīz vienmēr ir vienā no tiem. Paplašinājumu izvade ir droši koplietošanai; privātās atslēgas — nekad.

openssl x509 -in issuing-ca.pem -noout -subject -issuer -ext basicConstraints -ext extendedKeyUsage

Ja nosauktais sertifikāts ir starpnieks, kura paplašinātais atslēgas lietojums piemin kaut ko nesaistītu ar TLS servera autentifikāciju, pārējā neveiksme seko mehāniski. Ķēdi nevar izmantot mērķim, kuru pieprasīja OpenVPN.

Galvenā sertifikāta mērķis un ķēdes politika ir divi testi

Galvenā sertifikāta tests uzdod šauru jautājumu: vai šis gala vienības sertifikāts atļauj servera autentifikāciju šim vārdam? Ķēdes tests uzdod plašāku: vai katrs ceļā esošais sertifikāts drīkst kalpot šim mērķim? Sertifikācijas iestāde, kurai atļauts izsniegt tikai klienta sertifikātus, izturēs savas paraksta pārbaudes un tomēr neizturēs otro testu, jo ceļš, kuru tā autorizē, neietver mērķi, kas vajadzīgs lietojumprogrammai. Abi testi neizdodas ar tiem pašiem vārdiem, un tiem ir pilnīgi atšķirīgi labojumi.

Tāpēc tikko izsniegts galvenais sertifikāts, kas pareizs visos redzamajos laukos, var neizdoties nekavējoties. Tāpēc labojums parasti pieder izsniedzējas iestādes profilam, nevis VPN konfigurācijai.

Neesošs EKU nav ierobežojošs EKU

RFC 5280 padara paplašinātā atslēgas lietojuma paplašinājumu neobligātu un, kad tas ir, ierobežojošu. Tāpēc CA sertifikāts bez paplašinājuma nav teicis „nē“ servera autentifikācijai, savukārt tas, kas uzskaita tikai nesaistītu mērķi, ir teicis ko ļoti konkrētu. Šo divu stāvokļu uzskatīšana par līdzvērtīgiem rada nepareizu diagnozi un, vēl ļaunāk, nepareizu labojumu. Atšķirība arī izskaidro, kāpēc divas iestādes, kas konsolē izskatās līdzīgas, ķēdē uzvedas pilnīgi atšķirīgi.

Arī bibliotēku uzvedība šeit nav vienveidīga. OpenSSL dokuments par pārbaudes opcijām apraksta savu pieeju mērķa pārbaudēm CA sertifikātos, un šī pieeja ir ieviešanas politika, nevis noteikums, kuru katrs TLS steks ievēro identiski. Aprakstiet, ko dara jūsu pārbaudītājs, un pēc tam apstipriniet to versijā, kuru jūs faktiski izpildāt.

Reproducējiet neveiksmi bezsaistē pirms atkārtotas izsniegšanas

Pārbaude bezsaistē izņem lietojumprogrammu no vienādojuma. Ja ķēde neizdodas tāpat ar to pašu mērķi, problēma ir sertifikātā, un neviena servera konfigurācija to neslēps. Ja ķēde iztur bezsaistē, kamēr pakalpojums joprojām atsakās, lietojumprogramma pieprasa citu mērķi vai izmanto citu ķēdi nekā pārbaudītā.

openssl verify -purpose sslserver -show_chain -CAfile root-ca.pem -untrusted issuing-ca.pem vpn-server.pem

-show_chain ir svarīgs, jo izdrukā ceļu, kuru uzbūvēja rīks, un tas bieži vien nav jūsu norādītā failu secība. Šī izvade ir ātrākais veids, kā atklāt, ka otrais starpnieka sertifikāts tiek vilkts no uzticības krātuves, ka serveris sūta nevēlamu krusteniski parakstītu variantu vai ka mērķa karodziņš, kas nokopēts no apmācības, pieder citai lomai nekā apkalpotā.

Labojiet izsniegšanas politiku, nevis pārbaudes izsaukumu

Ilgstošais labojums ir starpnieka sertifikāts, kas izsniegts saskaņā ar politiku, kura atļauj mērķus, kam tam jākalpo, un ierobežojums ir pierakstīts un pārskatīts. Katra mērķa pievienošana katrai iestādei nav politika; tas noņem ierobežojumu, kas paplašinājumam deva jēgu, un parasti pārdzīvo negadījumu, kas to izraisīja. Īsa piezīme profilā, kas apraksta, kādas lomas iestāde drīkst sertificēt, neļauj nākamajai atkārtotajai izsniegšanai atkārtot to pašu strīdu.

Pārbaudes izslēgšana ir otrs vilinošais īsceļš, un tā pārvērš sertifikāta problēmu uzticības problēmā. Saglabājiet mērķa pārbaudi, izlabojiet ķēdi un vēlreiz palaidiet to pašu pārbaudi bezsaistē, lai apstiprinātu, ka ceļš tagad kalpo paredzētajai lomai, pirms vēlreiz pieskaraties pakalpojumam.

Saistītie raksti