VPN-varmente ei ole vielä voimassa: kolme syytä, yksi tarkistusjärjestys
Ei vielä voimassa tarkoittaa, että laitteen kello on jäljessä, ikkuna todella alkaa myöhemmin tai välivarmente ei ole vielä avautunut. Tarkista ne tässä järjestyksessä.
Avaat asiakasohjelman, valitset profiilin, jota olet käyttänyt kuukausia, ja se pysähtyy viestiin "certificate is not yet valid". Kirjautumisessasi ei ole muuttunut mikään, ja luottamusvarasto on luultavasti kunnossa: kättelyssä esitetty varmente kantaa voimassaoloikkunaa, joka alkaa myöhemmin kuin hetki, jota tarkistaja käyttää. Kolme eri tilannetta tuottaa juuri tuon viestin, ja ne vaativat eri toimenpiteitä. Alla oleva järjestys kertoo, mikä niistä sinulla on, ennen kuin kosket kelloa tai varmentetiedostoa.
Minkä kolmesta syystä näet
Ensimmäinen syy on paikallinen: tarkistuksen tekevän laitteen kello on varmenteen alkamispäivää aikaisempi. Näet sen laitteistossa, jonka CMOS-paristo on kuollut, vanhasta tilannekuvasta palautetuissa virtuaalikoneissa, laitteissa, jotka ovat olleet sammuksissa tarpeeksi kauan menettääkseen ajan, ja verkoissa, joissa lähtevä NTP on estetty eikä kukaan huomannut. Varmente voi olla täysin voimassa ja silti epäonnistua tällä tavalla.
Toinen syy kuuluu myöntäjälle, koska varmente todella alkaa tulevaisuudessa: myönnetty aikaisin, luotu nimenomaisella alkamisajalla tai allekirjoitettu osana aktivointivaihetta, jota ei ole vielä suoritettu. Kolmas syy tuhlaa eniten aikaa, koska lehti on ajantasainen, mutta toinen esitetyn ketjun varmente ei ole, joten virhe nimeää materiaalin, jota et koskaan asentanut.
Yksi kysymys erottaa ne. Seuraako vika laitetta vai palvelua? Kaksi samassa verkossa eri tavalla käyttäytyvää konetta viittaa kelloihin. Jos jokainen asiakasohjelma epäonnistuu samalla tavalla, se viittaa varmenteen ikkunaan ja sen takana olevaan ketjuun.
Lue ikkuna varmenteesta, joka todella esitettiin
Älä tutki aiemmasta käyttöönotosta jäänyttä PEM-tiedostoa; kysy palvelulta ketju, jonka se lähettää juuri nyt. openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts tulostaa jokaisen ketjun varmenteen. Tallenna kiinnostava lohko ja suorita openssl x509 -noout -subject -issuer -dates; viimeinen tulostaa notBefore- ja notAfter-arvot, ja juuri ne kaksi arvoa ratkaisevat. Windowsissa yhteyden varmentevalintaikkuna ja vientitiedostoon kohdistettu certutil -dump näyttävät samat kentät.
Lue ikkunan molemmat päät, ei vain alkua. Varmente, joka avautuu kahden tunnin kuluttua, ja se, joka sulkeutuu kahden tunnin kuluttua, epäonnistuvat eri viesteillä ja koskevat eri tiimejä. Panee merkille, minkä varmenteen virhe nimeää — lehti, välivarmente vai juuri —, koska se ratkaisee, voidaanko asiakaspäässä ylipäätään korjata mitään.
Voit testata ikkunaa myös odottamatta sitä. Tarkistus hyväksyy nimenomaisen ajan: openssl verify -attime 1793600000 -CAfile ca.pem -untrusted intermediate.pem leaf.pem arvioi ketjun tuona aikaleimana. Suorita se nykyisellä ajalla vian toistamiseksi ja sitten varmenteen alkamisajalla vahvistaaksesi, että sama ketju menee läpi, kun ikkuna avautuu. RFC 5280 määrittelee voimassaolokentän ja säännön, jonka mukaan varmenteita ei saa käyttää sen ulkopuolella, ja juuri tuota sääntöä asiakasohjelmasi äsken sovelsi.
Sinun kellosi vai heidän
Vertaa laitteen kelloa varmenteen alkuun UTC-ajassa lähteestä, johon luotat. date -u antaa hetken, ja timedatectl status systemd-isännässä kertoo myös, onko kello synkronoitu. Windowsissa w32tm /query /status näyttää nykyisen lähteen ja viimeisimmän onnistuneen synkronoinnin. Ilmaisinalueella näkyvä aikavyöhyke on näyttövalinta, ei väärä kello; tarkistaja vertaa UTC-hetkiä.
| 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 |
Jos kello on jäljessä, synkronoi uudelleen ja testaa uudelleen ennen kuin muutat mitään varmennemateriaalia. Laite, joka on minuutteja tai tunteja pielessä, hylkää jokaisen äskettäin myönnetyn varmenteen, jonka se kohtaa, ei vain yhtä palvelua, joten yhden palvelun selitys on yleensä väärä. Jos kello on oikein ja synkronoitu, lopeta laitteen katsominen: ikkuna kuuluu myöntäjälle, eikä mitään paikallista asetusta pitäisi säätää sen läpäisemiseksi.
Tuo taulukko on koko päätös. Kellon siirtäminen siihen, mitä varmente odottaa, ei ole korjaus, eikä aikavarmistusten poistaminen käytöstä ole sitä myöskään, koska molemmat piilottavat tilan, joka synnytti virheen.
Miksi ketju epäonnistuu, vaikka lehti näyttää hyvältä
Uusitut lehdet ja korvaavat välivarmenteet toimitetaan yleensä yhdessä, eivätkä ne aina saavu samalla hetkellä. Palvelu voi lähettää uuden lehden, jonka on allekirjoittanut välivarmente, jonka oma ikkuna alkaa myöhemmin, tai jatkaa vanhemman välivarmenteen tarjoamista tuoreen lehden alla. Kummassakin tapauksessa ketju epäonnistuu, vaikka lehden omat päivämäärät näyttävät järkeviltä.
Kuormantasatut päätepisteet muuttavat tämän rikkinäisestä epäjohdonmukaiseksi. Jos uudelleenyritys onnistuu tai yksi verkko toimii ja toinen ei, kirjaa, mikä vastapuoli vastasi ja minkä ketjun se lähetti, ennen kuin muutat asetuksia. openssl s_client tulostaa yhdistetyn osoitteen, joten muutama yritys paljastaa, tarjoileeko jokainen solmu saman ketjun.
Korjauspolut, jotka pitävät tarkistuksen ehjänä
Kello-ongelma korjataan laitteessa tarkistus päällä. Varmenteongelman korjaa operaattori materiaalilla, joka on myönnetty ikkunalle, joka jo sisältää nykyhetken. Mikään asiakasasetus ei tee ei-vielä-voimassa olevasta varmenteesta voimassa olevaa; liput, jotka ohittavat aikavarmistukset, ovat olemassa diagnoosin vahvistamiseksi, eivät tuotantoon vietäviksi.
Kun varmente on valmisteltu suunniteltua aktivointia varten, seuraa siirtymäsuunnitelmaa. Asenna se, kun sen ikkuna avautuu, tai käytä palveluntarjoajan dokumentoimaa limitysmenettelyä sen sijaan, että asentaisit sen aikaisin ja opettaisit käyttäjät klikkaamaan varoitukset läpi. Varoitukset, jotka ihmiset oppivat jättämään huomiotta, maksavat enemmän kuin lyhyt viive.
Testaa lopuksi uudelleen samalla tavalla kuin vika tapahtui: uusi istunto, sama asiakasohjelma, resurssi, jota todella tarvitset. TLS-kirjastot voivat välimuistittaa vahvistetun ketjun yhteyden koko eliniäksi, eikä jatkettu istunto välttämättä tarkista sitä uudelleen, joten vanha istunto voi jatkaa epäonnistumista korjauksen jälkeen tai jatkaa toimimista regressiota jälkeen. Katseluohjelmassa avautuva tiedosto todistaa vain, että tiedosto on luettavissa; valmis kättely todistaa, että ketju vahvistuu.
Ennen kuin suljet tiketin, vahvista neljä asiaa: epäonnistuvan laitteen UTC-aika ja synkronointitila, esitetyn ketjun jokaisen varmenteen notBefore ja notAfter, sama ketju toisesta asiakasohjelmasta ja nimi, jonka virhe antaa varmenteelle. Jos kello on oikein eikä ikkuna ole auennut, loput on operaattorin työtä, ja oikea siirto sinun puolellasi on odottaa ikkunaa tarkistuksen heikentämisen sijaan.