VPN sertifikatas dar negalioja: trys priežastys, viena patikros tvarka
Dar negalioja reiškia, kad įrenginio laikrodis atsilieka, langas tikrai prasideda vėliau arba tarpinis sertifikatas dar neatidarytas. Patikrinkite juos šia tvarka.
Atidarote klientą, pasirenkate profilį, kurį naudojate jau mėnesius, ir jis sustoja su "certificate is not yet valid". Jūsų prisijungime niekas nepasikeitė, o pasitikėjimo saugykla greičiausiai tvarkinga: rankos paspaudimo metu pateiktas sertifikatas turi galiojimo langą, kuris prasideda vėliau nei tikrintuvo naudojamas momentas. Tris skirtingos situacijos sukuria būtent šį pranešimą, ir joms reikia skirtingų veiksmų. Toliau pateikta tvarka pasakys, kurią turite, prieš liesdami laikrodį ar sertifikato failą.
Kurią iš trijų priežasčių matote
Pirmoji priežastis vietinė: tikrinančio įrenginio laikrodis ankstesnis už sertifikato pradžios datą. Tai matote techninėje įrangoje su negyva CMOS baterija, virtualiose mašinose, atkurtose iš seno momentinės kopijos, įrenginiuose, kurie buvo išjungti pakankamai ilgai, kad prarastų laiką, ir tinkluose, kur išeinantis NTP užblokuotas ir niekas to nepastebėjo. Sertifikatas gali būti visiškai galiojantis ir vis tiek taip nepavykti.
Antroji priežastis priklauso išdavėjui, nes sertifikatas tikrai prasideda ateityje: išduotas anksti, sugeneruotas su aiškiu pradžios laiku arba pasirašytas kaip dar neįvykdyto aktyvavimo žingsnio dalis. Trečioji priežastis praranda daugiausia laiko, nes lapas galioja, o kitas pateiktos grandinės sertifikatas ne, todėl klaida įvardija medžiagą, kurios niekada neįdiegėte.
Vienas klausimas juos skiria. Ar gedimas seka įrenginį, ar paslaugą? Du kompiuteriai tame pačiame tinkle, besielgiantys skirtingai, rodo laikrodžius. Jei kiekvienas klientas nepavyksta taip pat, tai rodo sertifikato langą ir grandinę už jo.
Langą skaitykite iš sertifikato, kuris iš tikrųjų buvo pateiktas
Netikrinkite PEM failo, likusio iš ankstesnio diegimo; paprašykite paslaugos grandinės, kurią ji siunčia dabar. openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts išspausdina kiekvieną grandinės sertifikatą. Išsaugokite reikiamą bloką ir paleiskite openssl x509 -noout -subject -issuer -dates; paskutinis išspausdina notBefore ir notAfter, ir būtent šios dvi reikšmės sprendžia. Windows sistemoje ryšio sertifikato dialogas ir certutil -dump eksportuotame faile rodo tuos pačius laukus.
Skaitykite abu lango galus, ne tik pradžią. Sertifikatas, atsidarantis po dviejų valandų, ir tas, kuris užsidaro po dviejų valandų, nepavyksta su skirtingais pranešimais ir įtraukia skirtingas komandas. Atkreipkite dėmesį, kurį sertifikatą įvardija klaida — lapą, tarpinį ar šakninį —, nes tai lemia, ar kliento pusėje apskritai ką nors galima pataisyti.
Langą galite išbandyti ir nelaukdami. Tikrinimas priima aiškų laiką: openssl verify -attime 1793600000 -CAfile ca.pem -untrusted intermediate.pem leaf.pem įvertina grandinę tuo laiko ženklu. Paleiskite jį su dabartiniu laiku, kad atkartotumėte gedimą, o paskui su sertifikato pradžios laiku, kad patvirtintumėte, jog ta pati grandinė praeina, kai langas atsidaro. RFC 5280 apibrėžia galiojimo lauką ir taisyklę, kad sertifikato negalima naudoti už jo ribų, ir būtent šią taisyklę jūsų klientas ką tik pritaikė.
Jūsų laikrodis ar jų
Palyginkite įrenginio laikrodį su sertifikato pradžia UTC laiku iš šaltinio, kuriuo pasitikite. date -u pateikia momentą, o timedatectl status systemd hoste taip pat praneša, ar laikrodis sinchronizuotas. Windows sistemoje w32tm /query /status rodo dabartinį šaltinį ir paskutinę sėkmingą sinchronizaciją. Dėkle rodoma laiko juosta yra rodymo pasirinkimas, o ne neteisingas laikrodis; tikrintuvas lygina UTC momentus.
| What you see | Most likely reading | Next step |
|---|---|---|
| Clock behind, one device affected | Local time fault | Resync time, keep validation on, retest |
| Clock correct, window opens soon | Certificate staged early | Wait for the window or follow the cutover plan |
| Clock correct, intermediate not yet valid | Chain material mismatch | Operator replaces the intermediate |
| Some peers pass, others do not | Inconsistent nodes | Record each peer's chain before changing anything |
Jei laikrodis atsilieka, iš naujo sinchronizuokite ir dar kartą patikrinkite prieš keisdami bet kokią sertifikato medžiagą. Įrenginys, kuris skiriasi minutėmis ar valandomis, atmeta kiekvieną neseniai išduotą sertifikatą, kurį sutinka, ne tik vieną paslaugą, todėl vienos paslaugos paaiškinimas paprastai yra neteisingas. Jei laikrodis teisingas ir sinchronizuotas, nustokite žiūrėti į įrenginį: langas priklauso išdavėjui, ir jokia vietinė nuostata neturi būti keičiama, kad jis praeitų.
Ta lentelė yra visas sprendimas. Laikrodžio perkėlimas į tai, ko tikisi sertifikatas, nėra taisymas, o laiko patikrų išjungimas taip pat ne, nes abu slepia būseną, kuri sukėlė klaidą.
Kodėl grandinė nepavyksta, nors lapas atrodo gerai
Atnaujinti lapai ir pakaitiniai tarpiniai sertifikatai paprastai siunčiami kartu, ir ne visada atvyksta tuo pačiu momentu. Paslauga gali siųsti naują lapą, pasirašytą tarpinio, kurio savas langas prasideda vėliau, arba toliau tiekti senesnį tarpinį po nauju lapu. Abiem atvejais grandinė nepavyksta, nors paties lapo datos atrodo pagrįstos.
Apkrovos paskirstyti galiniai taškai tai paverčia iš sulaužytos į nenuoseklią. Jei kartojimas pavyksta arba vienas tinklas veikia, o kitas ne, užrašykite, kuri pusė atsakė ir kurią grandinę atsiuntė, prieš keisdami nuostatas. openssl s_client išspausdina prisijungusį adresą, todėl keli bandymai parodo, ar kiekvienas mazgas tiekia tą pačią grandinę.
Taisymo keliai, išsaugantys tikrinimą
Laikrodžio problema taisoma įrenginyje paliekant tikrinimą įjungtą. Sertifikato problemą ištaiso operatorius medžiaga, išduota langui, kuris jau apima dabar. Jokia kliento nuostata nepadaro dar negaliojančio sertifikato galiojančiu; vėliavėlės, praleidžiančios laiko patikras, egzistuoja diagnozei patvirtinti, o ne gamybai.
Kai sertifikatas paruoštas planuojamam aktyvavimui, vadovaukitės perėjimo planu. Įdiekite jį, kai atsidaro jo langas, arba naudokite perdengimo procedūrą, kurią dokumentuoja tiekėjas, užuot įdiegę anksti ir mokydami naudotojus spustelėti įspėjimus. Įspėjimai, kurių žmonės išmoksta nepaisyti, kainuoja daugiau nei trumpas delsimas.
Galiausiai patikrinkite iš naujo taip, kaip įvyko gedimas: nauja sesija, tas pats klientas, išteklius, kurio iš tikrųjų reikia. TLS bibliotekos gali kešuoti patikrintą grandinę visą ryšio gyvavimo laiką, o atnaujinta sesija nebūtinai ją tikrina dar kartą, todėl sena sesija gali toliau nepavykti po pataisymo arba toliau veikti po regresijos. Failas, atsidarantis peržiūros programoje, įrodo tik tai, kad failas skaitomas; užbaigtas rankos paspaudimas įrodo, kad grandinė patvirtinama.
Prieš uždarydami bilietą patvirtinkite keturis dalykus: nepavykstančio įrenginio UTC laiką ir sinchronizacijos būseną, kiekvieno pateiktos grandinės sertifikato notBefore ir notAfter, tą pačią grandinę iš antro kliento ir pavadinimą, kurį klaida suteikia sertifikatui. Jei laikrodis teisingas, o langas dar neatsidarė, likusi dalis yra operatoriaus darbas, o teisingas žingsnis jūsų pusėje yra laukti lango, o ne susilpninti patikrą.