Жапырақ сертификаты жарамды, тізбек мерзімі бітті: тереңдікті оқыңыз
Мерзімі біту қатесі жапыраққа емес, шығарушыға тиесілі болуы мүмкін. Әлі күшінде көрінетін сертификатты жаңартпас бұрын тексеру тереңдігі мен сенім кірістерін оқыңыз.
Сіз сервер сертификатын тексересіз, сағатта әлі айлар қалғанын көресіз, ал клиент қосылымды мерзімі бітті деген хабарламамен қабылдамайды. Сіз оқыған күн жапыраққа тиесілі, ал шағым жолдың тереңірек жеріндегі нәрсе туралы болуы мүмкін. Тексеру тізбек бойымен жүреді, және осы жүріс таңдаған кез келген сертификат өзінің жарамдылық терезесінде сәтсіз болуы мүмкін. Бірдеңені жаңартпас бұрын қайсысы сәтсіз болғанын оқыңыз.
Тереңдік сәтсіз болған сертификатты атайды
OpenSSL диагностикасында тереңдік 0 — мақсатты сертификат, ал тереңдік 1 — оған қол қойған шығарушы, үлкенірек сандар сенім тірегіне қарай жалғасады. 1-тереңдікте хабарланған мерзім біту жапырақтағы ағымдағы notAfter-пен қайшы келмейді, сондықтан көрінетін сертификатты қайта тексеру қатені ешқашан түсіндірмейді.
Сәтсіз сертификаттың саусақ ізін оның subject-імен бірге жазып алыңыз, өйткені әртүрлі сертификаттар бірдей CA атауын иеленуі мүмкін. Кросс-қолтаңба дәл осы жағдайды тудырады: сол орган бірнеше рет, түрлі жарамдылық күндерімен көрінеді, ал тексеруші сіз күтпеген нұсқаны таңдады. Таныс белгі идентификатор емес, ал саусақ ізі бір атты бөлісетін екі нысанды ажырататын нәрсе.
Сертификат рөлі біреуден көп өнімдерге де назар аударыңыз. OpenVPN Access Server-де веб-интерфейстерді қорғайтын сертификаттар VPN қосылымдары үшін пайдаланылатындардан бөлек, сондықтан әкімші бетін ашатын браузер туннель жолы туралы ештеңе дәлелдей алмайды.
Сенім кірістері тізбек кандидаттарымен бірдей емес
Тексерушіге екі кірісті бөлек және анық беріңіз. Сенім файлы сіз қабылдайтын тіректерді ұстайды; сенімсіз бума жолды құру үшін ұсынылған аралық сертификаттарды ұстайды. Оларды араластыру — адамдардың абайсызда аралық сертификатты түбірге дейін көтеріп, кейін неге сол қате машиналар арасында олардың соңынан еретініне таңдануы.
$ openssl verify -verbose -show_chain -purpose sslserver \
-CAfile trusted-roots.pem -no-CApath -no-CAstore \
-untrusted intermediates.pem server.pem
Әдепкі жол мен қойманы -no-CApath -no-CAstore арқылы өшіру тестті адал ұстайды: нәтиже сіз атаған файлдарға байланысты, жұмыс станциясы кездейсоқ сенетін нәрсеге емес. OpenSSL тексеру анықтамалығы осы опцияларды және олар шығаратын диагностиканы құжаттайды.
-show_chain тексеру сәтті болғанда құрылған тізбекті басып шығарады, бұл жолдың сіз ойлаған жол екенін растауға пайдалы. Сәтсіз болса, хабарланған тереңдік пен subject-ті сақтаңыз; осы екі өріс келесі оқырманға қай сертификатты тексеру керегін айтады.
Бұның жасамайтыны — әр клиенттің саясатын қайта жаңғырту. Пин, мақсат шектеуі немесе клиентке тән сәйкестендіру тексерісі клиентте өмір сүреді, бұл командада емес. Серверде тексеру өтіп, қосылым әлі де сәтсіз болғанда тексерілетін параметрлер — осылар. Екі диагностиканы бөлек ұстаңыз, әйтпесе пиннинг қатесін қуып жүріп сау сертификатты жаңартасыз.
Тексеру нені дәлелдейді және нені тыс қалдырады
Бұл өзіңіз ұсынған сенім файлына қарсы жол мен мақсат тексерісі. HTTPS атауын тексеру үшін күтілетін хост атауын тиісті опция арқылы қосыңыз; VPN қосылымы үшін клиенттің конфигурацияланған сәйкестендіру тексерістерін сақтап, сол клиент шынымен оқитын сенім материалын пайдаланыңыз.
Сервер жіберетін нәрсе — кандидаттар жиыны, клиентіңіз соңында құратын жол емес. Жергілікті сенім мен кітапхананың құру ережелері нәтижені қалыптастырады, сондықтан бір жауап бір машинада расталып, екіншісінде сәтсіз болуы мүмкін. Бірдей бағалауды болжамас бұрын сәтсіз клиенттің қолдаулы сенім қоймасы мен TLS іске асырылуын жұмыс істеп тұрған клиентпен салыстырыңыз. Ондағы айырмашылық «тек осы ноутбук сәтсіз болады» деген көптеген есептерді түсіндіреді.
Әр сертификаттың терезесін бір-бірден емес, жиын ретінде көру үшін оларды басып шығарыңыз:
$ openssl x509 -in server.pem -noout -subject -dates
$ openssl crl2pkcs7 -nocrl -certfile intermediates.pem \
| openssl pkcs7 -print_certs -noout
Екінші команда әр файлды қолмен декодтамай-ақ subject-тер мен шығарушыларды тізімдейді, осылайша жапырақ әлі жақсы көрінгенде күні өтіп кеткен аралық сертификатты байқайсыз.
Тексеруді әлсіретпей жолды жөндеңіз
Мерзімі біткен аралық немесе ескірген кросс-қол қойылған сертификат ұсынылғанда, шығарушының қазір қолдау көрсетілетін тізбегін алып, оны қызметтің құжатталған сертификат жұмыс ағыны арқылы орналастырыңыз. Клиентте көзделген қолдаулы тірек болмаса, оның басқарылатын сенім конфигурациясын немесе клиент бағдарламасын жаңартыңыз. Хабарламаны үнсіз қалдыру үшін бумадағы әр сертификатты түбір деп белгілеу қысқа жолына қарсы тұрыңыз.
Түбірмен жұмыс жазбаға лайық, өйткені түйіндер оны жиі асыра көрсетеді. RFC 5280 тіректі болжамды жолдан тыс тұрған кіріс ретінде қарастырса, OpenSSL өзінің түбірлік CA сертификатын қамтитын жарамдылық тексерістерін құжаттайды. Екі тұжырым да өз жүйелері үшін дұрыс; бір кітапхананың түбір мерзімінің біту мінезін барлық клиентке жалпылау сенімді қате жауаптар береді.
Өзгерістен кейін зардап шеккен клиентте жаңа аутентификацияны мәжбүрлеп, нақты мерзімі бітті хабарламасы жоғалғанын растаңыз. Жапырақтың өзі жарамсыз болса ғана жапырақты жаңартыңыз. Уақыт тексерістерін өшіру немесе тарихи кросс-сертификатты қалпына келтіру жарамды ағымдағы жол жасамайды; ол тек келесі сәтсіздікті кейінге қалдырады.