openssl ca: index.txt ішіндегі жарамсыз мерзімі және оны қалай түзету керек
CA index.txt-тегі бір жол талданбайтындықтан шығарудан бас тартып отыр. CA күйінің көшірмесін жасаңыз, жазбаны декодтаңыз, содан кейін оны қол қойылған сертификатпен сәйкестендіріңіз.
Шығару жүрісі мына жерде тоқтайды: entry 22: invalid expiry date, ал алдыңызда тұрған сұраныс толығымен дұрыс. Шағым CA дерекқорының талдағышынан келеді, CSR-ден де, сертификатты ақырында ұсынатын VPN клиентінен де емес. Осы айырмашылық кейінгінің бәрін анықтайды: жазба бүлінген, сондықтан түзету CA күйіне жатады, сұранысқа немесе серіктес конфигурациясына емес. Нөмірленген жазбаны index.txt ішіндегі жол ретінде қараңыз, сонда мәселе тексерілетін жауабы бар шектеулі дерек сұрағына айналады.
Қатені дерекқор туралы шағым ретінде оқыңыз
Әрбір openssl ca шақыру бірдеңеге қол қоймас бұрын өзінің мәтіндік дерекқорын аралайды. Әр жолда күй әрпі, мерзім аяқталуының уақыт белгісі, қосымша кері қайтару белгісі, он алтылық жүйедегі сериялық нөмір, файл атауы және субъект болады. Бір өріс талданбаса, пәрмен жол нөмірін хабарлап, жазбаның қалғанын болжаудың орнына тоқтайды.
Бұл тоқтау педанттық емес, қорғаныштық. Құрал оқи алмайтын жазба оны сұралған субъект бұрыннан бар ма, сериялық нөмір берілді ме, әлде келесі CRL неден тұруы керек пе — соны шешуге қабілетсіз қалдырады. Бүлінген жолдан өтіп кету дәл сол айлардан кейін, әдетте ешкім түсіндіре алмайтын кері қайтару кезінде бетіне шығатын тыныш сәйкессіздікті тудырар еді. Хабарламаны деректер туралы шағым ретінде оқыңыз, сонда тергеу CA қалтасының ішінде қалады.
Бірдеңеге қол тигізбес бұрын CA күйінің көшірмесін жасаңыз
Бүкіл CA қалтасының суретін түсіріңіз, тек дерекқор файлын ғана емес. Индекс, оның атрибут файлы, сериялық нөмір мен CRL нөмірінің файлдары, жеке кілт және шығарылған сертификаттар — бәрі кейінгі операцияларға қатысады, ал біреуін қалпына келтіріп, қалғанын қалдыратын түзету екінші оқиғаны тудырады. Бар жерде CA-ның өз сақтық көшірме рәсімін қолданыңыз және жұмыс барысында жоспарлы шығаруды тоқтатып тұрыңыз.
Сәтсіз пәрмен шын мәнінде жүктеген OpenSSL құрастырмасы мен конфигурация файлын жазып қойыңыз. Орнатулар көбіне бірнеше CA қалтасын ұстайды, ал қате тек таңдалған конфигурация атайтын дерекқорға қатысты мағынаға ие.
Жазбаны табыңыз және оның күн өрісін декодтаңыз
Хабарланған жол нөмірі бірінші жазбадан бастап саналады, сондықтан sed -n '22p' index.txt оның үстінде бос немесе түсініктеме жолдары жоқ екенін растағаннан кейін мәселелі жазбаға дөп түседі. Сол жолды көзге көрінетін бөлгіштермен басып шығарыңыз, өйткені табуляциялар мен соңғы бос орындар жиі кездеседі және қарапайым редактор терезесінде көрінбейді.
Мерзім өрісі — ені жылға байланысты уақыт белгісі. 2049 жылға дейінгі мәндер UTCTime форматында YYMMDDHHMMSSZ түрінде жазылады, ал одан кейінгі мәндер төрт таңбалы жылмен GeneralizedTime-ке ауысады. Екі форманы араластыратын немесе талдағыш қазір төрт таңба күтетін жерде екі таңбалы жыл алып жүретін жазба дәл осы нүктеде сәтсіздікке ұшырайды. Үзілген жазудан қалған қысқартылған өріс те солай.
Жазбаны басқа CA файлымен емес, ол сілтейтін сертификатпен салыстырыңыз. Қол қойылған сертификат — жарамдылық нені айтуы керектігі туралы бедел, және ол қазірдің өзінде талдауға болатын нысан ретінде бар.
Жазбаны қол қойылған сертификатқа сәйкес түзетіңіз
Шынайы күндерді мына пәрменмен оқыңыз: openssl x509 -in issued.pem -noout -dates -serial -subject. Мынаны түрлендіріңіз: notAfter мәнін сіздің құрастырмаңыз сол жыл үшін жазатын белгі еніне келтіріңіз және бір таңбаны өзгертер алдында сериялық нөмірдің редакциялайтын жазбаға сай келетінін растаңыз.
Тек бүлінген өрісті өңдеңіз, күй әрпі мен сериялық нөмірді сақтаңыз, жолдың қалғанын тимеңіз. Егер жазбаны ешбір қол қойылған сертификатпен сәйкестендіру мүмкін болмаса, оны адасқан жазба деп қарап, жолды қолмен жойудың орнына CA-ның өз кері қайтару жолымен шығарыңыз.
Жыл туралы болжамға сай болу үшін күнді қысып түзетпеңіз. Екі таңбалы қиық құрастырмалар арасында тасымалданбайды және дерекқордың болашақ қайталанған субъект пен CRL тексерулеріне хабарлайтын жарамдылығын тыныш өзгертеді. Бастапқы мәнді қалпына келтіру мүмкін болмаса, жаңа сериялық нөмірмен қайта шығарыңыз және ескісінің неліктен тасталғанын жазыңыз. Аудит ізі — түзетудің бөлігі, айналасындағы қағаз жұмысы емес.
Кетер алдында шығару мен CRL құруды тексеріңіз
Сол конфигурациямен бір шығару жүргізіп, оның жол нөмірі туралы шағымсыз аяқталатынын растаңыз. Содан кейін openssl ca -gencrl -config openssl.cnf көмегімен CRL құрып, оның талданатынын тексеріңіз, өйткені бүлінген жазба көбіне қол қою кезінде емес, дәл сол жерде бетіне шығады.
Жаңа сертификатты мына пәрменмен қарап шығыңыз: openssl x509 -noout -dates -serial және оны CA жаңа ғана жазған жолмен салыстырыңыз. Күй әрпі мен мерзім күнінің сертификатқа сәйкес келетінін, сондай-ақ openssl verify -CAfile ca.pem issued.pem пәрменінің қатесіз қайтатынын растаңыз. Содан кейін жоспарлы шығаруды қалпына келтіріп, бірінші жүрісті бақылаңыз, өйткені екінші бүлінген жол өзін бірден жариялайды.