VPN сертификатот сѐ уште не е валиден: три причини, еден редослед на проверка
„Сѐ уште не е валиден“ значи дека часовникот на уредот заостанува, прозорецот навистина почнува подоцна или среден сертификат сѐ уште не е отворен. Проверете ги по тој редослед.
Го отворате клиентот, го избирате профилот што го користите со месеци и тој запира со "certificate is not yet valid". Ништо во вашето најавување не е сменето, а складиштето за доверба веројатно е во ред: сертификатот претставен при ракувањето носи прозорец на важност што почнува подоцна од моментот што го користи проверувачот. Три различни ситуации ја создаваат токму таа порака, и тие бараат различни постапки. Редоследот подолу ви кажува која ја имате пред да допрете часовник или датотека со сертификат.
Која од трите причини ја гледате
Првата причина е локална: уредот што ја врши проверката има часовник поран од датумот на почеток на сертификатот. Тоа го гледате на хардвер со мртва 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 го покажува тековниот извор и последната успешна синхронизација. Часовната зона прикажана во таблата е избор за приказ, а не погрешен часовник; проверувачот споредува 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 на секој сертификат во претставениот синџир, истиот синџир од втор клиент и името што грешката му го дава на сертификатот. Ако часовникот е точен и прозорецот не се отворил, остатокот е работа на операторот, а правилниот потег на ваша страна е да го чекате прозорецот наместо да ја ослабите проверката.