Tas pats faila nosaukums ca.crt, cits sertifikāts: ko salīdzināt
Divi profili var piegādāt ca.crt ar atšķirīgu saturu. Paņemiet pirkstu nospiedumu tam, ko process ielādē, un pēc tam pārbaudiet, vai tas ir paredzētais uzticības enkurs.
Abi profili piegādā failu ar nosaukumu ca.crt, viens tunelis paceļas, bet otrs neizdodas ar ķēdes kļūdu. Abu failu atvēršana blakus to gandrīz nekad neatrisina, un verifikācijas izslēgšana to atrisina nepareizajā virzienā. Kļūda faktiski uzdod šaurāku jautājumu: kuru sertifikātu katrs process ielādē kā savu uzticības enkuru, un vai tie divi ir viens un tas pats objekts? Atbildiet uz to vispirms, un pārējā diagnoze iegūs virzienu. Faila nosaukums ir iepakojuma etiķete, un arī profilā ierakstītais ceļš nav autoritatīvs, tāpēc viss ir atkarīgs no tā, ko process faktiski lasa.
Atrodiet sertifikātu, ko klients faktiski ielādē
OpenVPN pieņem autoritāti divās formās, un forma nosaka, kuri baiti ir svarīgi. Profils var norādīt uz ārēju failu ar ca vai iegult sertifikātu <ca> blokā pašā profilā. Ja pastāv abi, uzvar iegultais bloks, un fails blakus profilam nekad netiek atvērts.
Izlasiet neizdevušos profilu un noskaidrojiet, kuru formu tas izmanto, pirms kaut ko salīdzināt. Kopija, kas paņemta no blakus direktorijas vai no pakotnes, no kuras nāca otrs profils, neko nepasaka par to, kam šis process uzticas. Tas pats attiecas uz ceļu konfigurācijā: tas tiek atrisināts attiecībā pret vietu, kur klients tika palaists, un tā ne vienmēr ir direktorija, uz kuru jūs skatāties. Lasiet profilu, nevis mapi.
Sertifikāti tiek identificēti pēc to satura: publiskās atslēgas, subjekta un izdevēja, derīguma loga un paraksta pār to visu. Divi faili ar identiskiem baitiem ir viens un tas pats sertifikāts, lai kā tos sauktu, un divi faili ar vienu un to pašu nosaukumu var būt nesaistītas autoritātes. Nosaukums ir iepakojuma etiķete, nevis identitāte.
Paņemiet abu kopiju pirkstu nospiedumu ar openssl
Pirkstu nospiedums ir jaucējvērtība pār sertifikāta DER kodējumu, formu, ko pārklāj paraksts, tāpēc rindu beigas un virsraksta teksts to nevar ietekmēt. Aprēķiniet to katram failam, un jums būs divas ar kolu atdalītas heksadecimālās virknes, kas vai nu sakrīt, vai nē. Lai atbildētu uz salīdzināšanas jautājumu, sertifikātā nekas cits nav jālasa.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
Ir vilinoši vērst openssl uz pašu profilu, bet tas nolasa pirmo sertifikāta bloku, kas failā parādās, un profils parasti satur <cert> pirms <ca>. Izvelciet autoritātes bloku un pēc tam paņemiet izvilktā faila pirkstu nospiedumu, jo tas ir kopija, ko klients faktiski izmantos.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Identiski pirkstu nospiedumi nozīmē, ka uzticības materiāls ir vienāds un ķēdes kļūdai ir cits cēlonis, kas ir cita izmeklēšana. Atšķirīgi pirkstu nospiedumi nozīmē atšķirīgus sertifikātus, un tieši tur sākas nākamā sadaļa.
Izlasiet neatbilstību, pirms pieņemat uzbrukumu
Atšķirīgi pirkstu nospiedumi nozīmē atšķirīgus sertifikātus un neko vairāk. Atkārtota izsniegšana, rotācija, pārdēvēta autoritāte vai novecojusi pakotne visas rada atšķirīgus failus ar pilnīgi likumīgām vēsturēm. Kurš no tiem pieder izvietojumam, ir jautājums operatoram vai izvietošanas reģistram, nevis faila modificēšanas laikam. Arhīvi kopē laika zīmes, tāpēc jaunāks fails nav automātiski pareizais enkurs.
Sakne, kas paraksta pati sevi, ir normāla, tāpēc tādas atrašana nav problēmas pierādījums. Pārbaudītāja uzdevums ir izveidot ceļu no servera sertifikāta līdz enkuram, kas tam tika dots, un ķēdes kļūda parasti nozīmē, ka šo ceļu nevarēja pabeigt.
Pārbaudiet, vai neizdevušā profila enkurs ir autoritāte, no kuras izvietojums joprojām izsniedz. Ja pirkstu nospiedums neatbilst nekam izvietošanas reģistrā, profils vienkārši ir novecojis, un nekāda klienta puses regulēšana to nelabos.
Atjaunojiet uzticību, neizslēdzot verifikāciju
Īstermiņa risinājums ir izslēgt verifikāciju vai pievienot katru ķēdes sertifikātu kā enkuru. Abi liek ziņojumam pazust, un abi maina to, kurus serverus klients turpmāk pieņems. Ieslēdziet verifikāciju atpakaļ, instalējiet paredzēto enkuru un testējiet vēlreiz.
Ja ķēde tagad tiek izveidota, bet parādās cita kļūda, tas ir progress: nosaukuma verifikācija, derīguma datumi un atsaukšana ir atsevišķas pārbaudes ar atsevišķiem ziņojumiem. Glabājiet pirkstu nospiedumu pāri un sākotnējo kļūdas tekstu kopā biļetenā, lai nākamais cilvēks redzētu, kurš enkurs tika ielādēts un kuru gaidīja. Pirkstu nospiedumu pāris ir pietiekami mazs, lai to ielīmētu nodošanas piezīmē, un nākamais gadījums tad aizņems piecas minūtes pēcpusdienas vietā.
Iegūstiet pareizo autoritāti pa to pašu autentificēto kanālu, kas piegādāja profilu. Sertifikāta izvilkšana no servera tāpēc, ka tā subjekts šķiet pazīstams, ir cita darbība, un tā klusi paplašina to, kam klients uzticēsies.