VPN сертификат још није важећи: три узрока, један редослед провере
„Још није важећи“ значи да сат уређаја заостаје, да прозор заиста почиње касније или да се посредни сертификат још није отворио. Проверите их тим редоследом.
Отварате клијент, бирате профил који користите месецима и он се зауставља са "certificate is not yet valid". Ништа се у вашој пријави није променило, а складиште поверења је вероватно у реду: сертификат представљен при руковању носи прозор важности који почиње касније од тренутка који користи проверaвач. Три различите ситуације дају управо ту поруку и траже различите поступке. Редослед испод вам каже који је ваш пре него што додирнете сат или датотеку сертификата.
Који од три узрока видите
Први узрок је локални: уређај који обавља проверу има сат ранији од датума почетка сертификата. Видите га на хардверу са мртвом CMOS батеријом, на виртуелним машинама враћеним из старе слике, на уређајима који су били искључени довољно дуго да изгубе време и на мрежама где је излазни NTP блокиран и нико то није приметио. Сертификат може бити потпуно важећи и ипак пасти на овај начин.
Други узрок припада издаваоцу, јер сертификат заиста почиње у будућности: издат рано, генерисан са експлицитним почетним временом или потписан као део корака активације који још није извршен. Трећи узрок губи највише времена, јер је лист актуелан док други сертификат у представљеном ланцу није, па грешка именује материјал који никад нисте инсталирали.
Једно питање их раздваја. Да ли отказ прати уређај или услугу? Две машине на истој мрежи које се понашају различито указују на сатове. Ако сваки клијент не успе на исти начин, то указује на прозор сертификата и ланац иза њега.
Прочитајте прозор из сертификата који је заиста представљен
Не прегледајте PEM датотеку која је остала од претходног распоређивања; питајте услугу за ланац који шаље сада. openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts исписује сваки сертификат у ланцу. Сачувајте блок који вам треба и извршите openssl x509 -noout -subject -issuer -dates; последњи исписује notBefore и notAfter, и те две вредности одлучују. На Windows-у дијалог сертификата за везу и certutil -dump на извезеној датотеци приказују иста поља.
Прочитајте оба краја прозора, не само почетак. Сертификат који се отвара за два сата и онај који се затвара за два сата не успевају са различитим порукама и укључују различите тимове. Забележите који сертификат грешка именује — лист, посредни или корени — јер то одлучује да ли се на страни клијента уопште може нешто поправити.
Можете тестирати прозор и без чекања. Провера прихвата експлицитно време: openssl verify -attime 1793600000 -CAfile ca.pem -untrusted intermediate.pem leaf.pem оцењује ланац на том временском печату. Извршите га са тренутним временом да репродукујете отказ, затим са почетним временом сертификата да потврдите да исти ланац пролази кад се прозор отвори. RFC 5280 дефинише поље важности и правило да се сертификат не сме користити изван њега, и управо то правило је ваш клијент применио.
Ваш сат или њихов
Упоредите сат уређаја са почетком сертификата у UTC, из извора коме верујете. date -u даје тренутак, а timedatectl status на systemd домаћину такође извештава да ли је сат синхронизован. На Windows-у w32tm /query /status приказује тренутни извор и последњу успешну синхронизацију. Временска зона приказана у траци је избор приказа, а не погрешан сат; проверaвач пореди UTC тренутке.
| 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 |
Ако сат заостаје, поново синхронизујте и поново тестирајте пре него што промените било који материјал сертификата. Уређај који је погрешан за минуте или сате одбија сваки недавно издат сертификат на који наиђе, не само једну услугу, па је објашњење са једном услугом обично погрешно. Ако је сат тачан и синхронизован, престаните да гледате уређај: прозор припада издаваоцу и ниједно локално подешавање не треба мењати да би прошао.
Та табела је цела одлука. Померање сата на оно што сертификат очекује није поправка, а искључивање провера времена такође није, јер обоје скривају стање које је произвело грешку.
Зашто ланац не успева док лист изгледа добро
Обновљени листови и заменски посредни сертификати обично се шаљу заједно и не стижу увек у истом тренутку. Услуга може послати нови лист потписан посредним чији сопствени прозор почиње касније, или наставити да служи старији посредни под свежим листом. У оба случаја ланац не успева док датуми самог листа изгледају разумно.
Балансиране крајње тачке претварају ово из поквареног у неконзистентно. Ако поновни покушај успе или једна мрежа ради а друга не, запишите који партнер је одговорио и који ланац је послао пре него што промените подешавања. openssl s_client исписује повезану адресу, па неколико покушаја открива да ли сваки чвор служи исти ланац.
Путеви поправке који чувају проверу
Проблем са сатом се поправља на уређају са укљученом провером. Проблем са сертификатом поправља оператер материјалом издатим за прозор који већ укључује садашње време. Ниједно подешавање клијента не чини још неважећи сертификат важећим; заставице које прескачу провере времена постоје да потврдите дијагнозу, а не да их пуштате у производњу.
Када је сертификат припремљен за планирану активацију, следите план преласка. Инсталирајте га када се његов прозор отвори или користите поступак преклапања који добављач документује, уместо да га инсталирате рано и учите кориснике да кликћу кроз упозорења. Упозорења која људи науче да игноришу коштају више од кратког одлагања.
На крају, поново тестирајте онако како се отказ догодио: нова сесија, исти клијент, ресурс који вам је заиста потребан. TLS библиотеке могу кеширати проверени ланац за цео животни век везе, а настављена сесија га не мора поново проверити, па стара сесија може наставити да не успева после поправке или наставити да ради после регресије. Датотека која се отвара у прегледачу доказује само да је датотека читљива; завршено руковање доказује да се ланац валидира.
Пре него што затворите тикет, потврдите четири ствари: UTC време и стање синхронизације уређаја који не успева, notBefore и notAfter сваког сертификата у представљеном ланцу, исти ланац од другог клијента и име које грешка даје сертификату. Ако је сат тачан и прозор се није отворио, остатак је посао оператера, а исправан потез на вашој страни је да сачекате прозор уместо да ослабите проверу.