Kaj vaš odjemalec VPN preveri, preden zaupa potrdilu
Popeljite opozorilo o potrdilu skozi štiri vrata, ki jih preveri vaš odjemalec: zaupanje v CA, gradnja verige, ime in namen partnerja ter politika preklica.
Vaš odjemalec VPN sporoči, da potrdila ni bilo mogoče preveriti, in pogovorno okno se tam ustavi. Datoteka je tam, strežnik deluje, in isti profil je prejšnji mesec deloval na drugem prenosniku. Pod tem opozorilom v eni vrstici je odjemalec pognal potrdilo partnerja skozi štiri vrata: potrditveni organ, ki ste ga nastavili, jamči za pot podpisa, ta pot doseže organ, ime partnerja je tisto, ki ste ga zahtevali, in potrdilo je zdaj uporabno za ta namen. Poiščite vrata, ki so se zaprla, in popravilo je običajno ena datoteka; preskočite ta korak in celo popoldne boste znova uvažali pakete.
Preberite pogovorno okno, preden uredite profil
Besedilo napak s potrdili oblikuje knjižnica spodaj, ne izdelek VPN, ki ste ga namestili, zato je natančen niz vaš prvi dokaz. »Ni mogoče pridobiti potrdila lokalnega izdajatelja« kaže na pot ali na sidro zaupanja. »Potrdilo je poteklo ali še ni veljavno« kaže na čas. »Nepodprt namen potrdila« kaže na razširjeno uporabo ključa. Neujemanje imena vam pove, katero ime je hotelo. Nobene od štirih ne odpravi ponovna namestitev odjemalca.
Preden karkoli spremenite, povišajte raven beleženja. OpenVPN sporoči napako preverjanja okrog rokovanja, ko ga zaženete z --verb 4, strongSwan pa svoje odločitve o identiteti in verigi zapiše v dnevnik charon. Nato potrdite, katero potrdilo pregledujete, ker ljudje običajno preizkušajo datoteko na disku, medtem ko profil vgradi starejšo kopijo. Ko profil vgradi bloke PEM, je preizkušeno vgrajeno potrdilo.
Potrditveni organ podpisuje identitete, ne dovoljenj
Organ hrani ime in podpisni ključ. Izdaja potrdila, ki po njegovi lastni politiki vežejo javni ključ na to ime, z dodanim obdobjem veljavnosti in omejitvami uporabe. Vaš odjemalec potrebuje za prepoznavo izdajatelja le potrdilo organa; podpisnega ključa nikoli ne potrebuje, in pošiljanje tega ključa odjemalcem bi jim dalo zmožnost ustvariti katero koli identiteto, ki ji zaupa uvedba.
Zaupanje organu naredi vsako potrdilo, ki ga je podpisal, kandidata, ne pravega partnerja. Potrdilo spletnega strežnika iz iste interne CA je prav tako kandidat. Zato obstajajo vrata za ime in namen in zato je ogrožen ključ CA pomembnejši od katerega koli posameznega strežnika: doseže vsako identiteto, ki jo je organ kdaj izdal. Izdajajte odjemalska potrdila za vsako napravo, da bo izgubljen prenosnik en preklic in ne ponovno ustvarjanje ključev za celotno uvedbo.
Ponovno zgradite pot, ki jo odjemalec poskuša zgraditi
Pot teče od potrdila partnerja prek nič ali več vmesnih potrdil do korena v vašem shrambi zaupanja. Manjkajoče vmesno potrdilo je najpogostejša okvara verige, in z vidika odjemalca je videti enako kot neprepoznan koren. Najprej preberite list, nato pustite OpenSSL, da zgradi pot iz gradiva, ki ga nameravate poslati.
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
Izhodni status nič pomeni, da je bila pot zgrajena iz teh datotek; napaka poimenuje potrdilo, do katerega ni prišlo. Če openssl verify uspe, medtem ko odjemalec še vedno zavrača, je razlika v tem, kar strežnik dejansko pošlje, ali v tem, katero datoteko zaupanja naloži profil. V OpenVPN lahko vmesna potrdila potujejo z datoteko potrdila strežnika ali se dobavijo ločeno z --extra-certs, in paket z dvema korenoma pod istim imenom subjekta bo poslal enega od vaših odjemalcev v napačno vejo.
Ime in namen sta ločena vrata
Gradnja verige nikoli ne vpraša, ali je ime vaše. OpenVPN ga preveri le, ko profil nastavi --verify-x509-name, in stara navada primerjanja samo splošnega imena se zlomi pri potrdilih, katerih identitete živijo v subjectAltName. Uvedbe IKEv2 primerjajo nastavljeno identiteto z vnosi SAN ali z razlikovalnim imenom, odvisno od odjemalca, in vrednost z nadomestnim znakom ali %any tiho izklopi primerjavo, za katero ste mislili, da jo imate.
Nato prideta čas in namen. Prenosnik, katerega ura hiti nekaj ur naprej, zavrne še ne veljavno potrdilo, poteklo vmesno potrdilo pa pokvari pot, medtem ko je list veljaven. Napake namena izhajajo iz potrdila brez serverAuth v razširjeni uporabi ključa ali s keyUsage, ki ne dovoljuje podpisa rokovanja, kar OpenSSL sporoči kot nepodprt namen potrdila. Izdajte znova iz prave predloge; nič v tem sporočilu ni razlog za izklop preverjanja.
Preklic se izvaja le, če ga je kdo nastavil
CRL ali odgovor OCSP se ne preverjata samodejno. Na strežniku OpenVPN se odjemalska potrdila primerjajo s seznamom le, ko --crl-verify kaže na enega. Preverjanje potrdila strežnika na strani odjemalca je odvisno od izvedbe in ga pogosto ni. strongSwan potrebuje svoj vtičnik za preklic in politiko, preden pogleda CRL za partnerja.
To pojasni zahtevek, ki ga boste sčasoma prejeli: preklicano odjemalsko potrdilo se še vedno poveže, in vsi sklenejo, da je preklic pokvarjen. Nič ni preverjalo. Objavite in osvežite CRL ali imejte odjemalska potrdila dovolj kratkotrajna, da zastarel preklic šteje le kratek čas, in vadite pot preklica na laboratorijskem potrdilu, preden ga boste potrebovali med incidentom.
Vrstni red popravila, ki pusti preverjanje vklopljeno
Razvrstite po simptomu, preden se dotaknete datotek, ker vas vsaka vrstica tabele pošlje k drugemu objektu.
| 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 |
Pojdite skozi seznam v enem prehodu: potrdite datoteko, ki jo naloži profil, sami zgradite pot, preverite, ali strežnik pošlje vmesno potrdilo, primerjajte uro, preberite SAN, preberite EKU, nato se znova povežite in opazujte, kako ista vrstica dnevnika izgine. Če napravi ni mogoče dati nobene CA, je pripenjanje poštena alternativa, ker OpenVPN 2.6 sprejme --peer-fingerprint in zoži zaupanje na en ključ, namesto da bi odstranil preverjanje. RFC 5280 je referenca za pomen vsakega od teh polj.