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 сәтті береді, ал systemd хостында timedatectl status сағаттың синхрондалғанын да хабарлайды. 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 мәні, екінші клиенттен сол тізбек және қатенің сертификатқа беретін атауы. Егер сағат дұрыс болып, терезе әлі ашылмаса, қалғаны оператордың жұмысы, ал сіз жақтан дұрыс қадам тексеруді әлсірету емес, терезені күту.