Ko jūsu VPN klients pārbauda pirms uzticas sertifikātam
Izvediet sertifikāta brīdinājumu cauri četriem vārtiem, ko pārbauda jūsu klients: CA uzticēšanās, ķēdes veidošana, partnera nosaukums un mērķis, un atsaukšanas politika.
Jūsu VPN klients paziņo, ka sertifikātu nevarēja pārbaudīt, un dialogs tur beidzas. Fails ir, serveris darbojas, un tas pats profils pagājušajā mēnesī strādāja citā klēpjdatorā. Zem šī vienas rindas brīdinājuma klients izlaida partnera sertifikātu cauri četriem vārtiem: jūsu konfigurētā sertifikātu iestāde galvo par paraksta ceļu, šis ceļš sasniedz iestādi, partnera nosaukums ir tas, ko jūs pieprasījāt, un sertifikāts tagad ir lietojams šim mērķim. Atrodiet vārtus, kas aizvērās, un labojums parasti ir viens fails; izlaidiet šo soli, un jūs visu pēcpusdienu atkārtoti importēsiet pakotnes.
Izlasiet dialogu pirms profila rediģēšanas
Sertifikātu kļūdu formulējumus veido apakšā esošā bibliotēka, nevis jūsu instalētais VPN produkts, tāpēc precīzā rinda ir jūsu pirmais pierādījums. «Neizdodas iegūt vietējā izdevēja sertifikātu» norāda uz ceļu vai uzticības enkuru. «Sertifikāts ir beidzies vai vēl nav derīgs» norāda uz laiku. «Neatbalstīts sertifikāta mērķis» norāda uz paplašināto atslēgas lietojumu. Nosaukuma neatbilstība pasaka, kādu nosaukumu tas gribēja. Nevienu no četriem neizlabo klienta pārinstalēšana.
Pirms kaut ko mainīt, paaugstiniet žurnāla līmeni. OpenVPN ziņo par pārbaudes neveiksmi ap rokasspiedienu, kad to palaižat ar --verb 4, un strongSwan savus identitātes un ķēdes lēmumus raksta charon žurnālā. Pēc tam apstipriniet, kuru sertifikātu pārbaudāt, jo cilvēki parasti testē failu diskā, kamēr profils iekļauj vecāku kopiju. Kad profils iekļauj PEM blokus, tests attiecas uz iekļauto sertifikātu.
Sertifikātu iestāde paraksta identitātes, nevis atļaujas
Iestādei ir nosaukums un parakstīšanas atslēga. Tā izdod sertifikātus, kas saskaņā ar tās politiku saista publisko atslēgu ar šo nosaukumu, pievienojot derīguma logu un lietošanas ierobežojumus. Jūsu klientam izdevēja atpazīšanai vajadzīgs tikai iestādes sertifikāts; parakstīšanas atslēga tam nekad nav vajadzīga, un šīs atslēgas nosūtīšana klientiem dotu tiem iespēju radīt jebkuru identitāti, kurai uzticas izvietojums.
Uzticēšanās iestādei padara katru tās parakstīto sertifikātu par kandidātu, nevis par īsto partneri. Tā paša iekšējā CA tīmekļa servera sertifikāts arī ir kandidāts. Tāpēc pastāv nosaukuma un mērķa vārti, un tāpēc kompromitēta CA atslēga ir svarīgāka par jebkuru atsevišķu serveri: tā sasniedz katru identitāti, ko iestāde jebkad izdevusi. Izdodiet klienta sertifikātus katram ierīcei atsevišķi, lai pazaudēts klēpjdators būtu viens atsaukums, nevis visa izvietojuma atslēgu pārģenerēšana.
Pārbūvējiet ceļu, ko klients mēģina izveidot
Ceļš iet no partnera sertifikāta caur nulli vai vairākiem starpsertifikātiem līdz saknei jūsu uzticības krātuvē. Trūkstošs starpsertifikāts ir visbiežākā ķēdes kļūda, un no klienta puses tā izskatās tieši tāpat kā neuzticama sakne. Vispirms izlasiet lapu, pēc tam ļaujiet OpenSSL izveidot ceļu no materiāla, ko plānojat sūtīt.
openssl x509 -in server.crt -noout -subject -issuer -dates
openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt
openssl verify -show_chain -CAfile root.crt -untrusted intermediate.crt server.crt
Izejas statuss nulle nozīmē, ka ceļš tika izveidots no šiem failiem; neveiksme nosauc sertifikātu, kuru nevarēja sasniegt. Ja openssl verify izdodas, bet klients joprojām atsakās, atšķirība ir tajā, ko serveris faktiski sūta, vai tajā, kuru uzticības failu profils ielādē. OpenVPN starpsertifikāti var ceļot kopā ar servera sertifikāta failu vai tikt nodrošināti atsevišķi ar --extra-certs, un pakotne ar divām saknēm zem viena subjekta nosaukuma nosūtīs vienu no jūsu klientiem nepareizajā zarā.
Nosaukums un mērķis ir atsevišķi vārti
Ķēdes veidošana nekad nejautā, vai nosaukums ir jūsu. OpenVPN to pārbauda tikai tad, kad profils iestata --verify-x509-name, un vecais paradums saskaņot tikai kopējo nosaukumu lūzt sertifikātos, kuru identitātes dzīvo subjectAltName. IKEv2 izvietojumi saskaņo konfigurēto identitāti ar SAN ierakstiem vai ar atšķirīgo nosaukumu, atkarībā no klienta, un aizstājējzīmes vai %any vērtība klusi izslēdz salīdzināšanu, kas jums, jūsuprāt, bija.
Tālāk nāk laiks un mērķis. Klēpjdators, kura pulkstenis steidzas par dažām stundām, noraida vēl nederīgu sertifikātu, un beidzies starpsertifikāts sabojā ceļu, kamēr lapa ir derīga. Mērķa kļūdas rodas no sertifikāta bez serverAuth paplašinātajā atslēgas lietojumā vai ar keyUsage, kas neļauj rokasspiediena parakstu, ko OpenSSL ziņo kā neatbalstītu sertifikāta mērķi. Izdodiet no jauna no pareizās veidnes; nekas šajā ziņojumā nav iemesls izslēgt pārbaudi.
Atsaukšana darbojas tikai tad, ja kāds to konfigurējis
CRL vai OCSP atbilde netiek pārbaudīta automātiski. OpenVPN serverī klienta sertifikāti ar sarakstu tiek salīdzināti tikai tad, kad --crl-verify norāda uz to. Servera sertifikāta pārbaude klienta pusē ir atkarīga no ieviešanas un bieži vien nav. strongSwan vajag savu atsaukšanas spraudni un politiku, pirms skatīties CRL partnerim.
Tas izskaidro biļeti, ko beigās saņemsiet: atsaukts klienta sertifikāts joprojām savienojas, un visi secina, ka atsaukšana ir salūzusi. Nekas nepārbaudīja. Publicējiet un atsvaidziniet CRL vai turiet klienta sertifikātus pietiekami īslaicīgus, lai novecojis atsaukums būtu svarīgs neilgi, un trenējiet atsaukšanas ceļu ar laboratorijas sertifikātu, pirms tas jums vajadzīgs incidenta laikā.
Labošanas kārtība, kas saglabā pārbaudi ieslēgtu
Kārtojiet pēc simptoma, pirms pieskaraties failiem, jo katra tabulas rinda jūs sūta pie cita objekta.
| Client says | Most likely gate | First check |
|---|---|---|
| unable to get local issuer certificate | trust anchor or missing intermediate | your own openssl verify against the files the profile loads |
| expired or not yet valid | validity window | leaf and intermediate dates against the device clock |
| unsupported certificate purpose | extended key usage | serverAuth present, keyUsage allows the handshake |
| name mismatch | peer identity | subjectAltName entries versus the profile name |
Izstaigājiet sarakstu vienā piegājienā: apstipriniet failu, ko ielādē profils, pats izveidojiet ceļu, pārbaudiet, vai serveris sūta starpsertifikātu, salīdziniet pulksteni, nolasiet SAN, nolasiet EKU, pēc tam pievienojieties vēlreiz un vērojiet, kā pazūd tā pati žurnāla rinda. Ja ierīcei vispār nevar dot CA, piespraušana ir godīgā alternatīva, jo OpenVPN 2.6 pieņem --peer-fingerprint un sašaurina uzticēšanos līdz vienai atslēgai, nevis noņem pārbaudi. RFC 5280 ir atsauce tam, ko nozīmē katrs no šiem laukiem.