Сертыфікат 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 кожнага сертыфіката ў прадстаўленым ланцугу, той жа ланцуг з другога кліента і імя, якое памылка дае сертыфікату. Калі гадзіннік правільны, а акно яшчэ не адкрылася, рэшта — праца аператара, і правільны крок з вашага боку — чакаць акна, а не паслабляць праверку.