openssl ca: index.txt-də etibarsız bitmə tarixi və onu necə düzəltmək olar
CA, index.txt-də bir sətri təhlil edə bilmədiyi üçün buraxmaqdan imtina edir. CA vəziyyətinin surətini çıxarın, qeydi deşifrə edin, sonra onu imzalanmış sertifikatla uzlaşdırın.
Buraxılış prosesi entry 22: invalid expiry date xətası ilə dayanır, halbuki qarşınızda duran sorğu tamamilə qaydasındadır. Şikayət CA verilənlər bazasının analizatorundan gəlir, nə CSR-dən, nə də sertifikatı sonda təqdim edəcək VPN müştərisindən. Bu fərq sonrakı hər şeyi müəyyən edir: qeyd pozulub, deməli təmir sorğuda və ya peer konfiqurasiyasında deyil, CA vəziyyətində aparılmalıdır. Nömrələnmiş qeydə index.txt sətri kimi baxın, və problem yoxlanıla bilən cavabı olan məhdud bir verilənlər sualına çevrilir.
Xətanı verilənlər bazası şikayəti kimi oxuyun
Hər openssl ca çağırışı imzalamaqdan əvvəl öz mətn bazasını gəzir. Hər sətirdə status hərfi, bitmə vaxt damğası, istəyə bağlı ləğv damğası, onaltılıq sistemdə seriya nömrəsi, fayl adı və subyekt olur. Bir sahə təhlil olunmayanda əmr sətir nömrəsini bildirir və qeydin qalanını təxmin etmək əvəzinə dayanır.
Bu dayanma pedantik deyil, qoruyucudur. Alətin oxuya bilmədiyi qeyd onu qərar verməkdən məhrum edir: istənilən subyekt artıq mövcuddurmu, seriya nömrəsi verilibmi, növbəti CRL nəyi ehtiva etməlidir. Pozulmuş sətirdən keçmək məhz aylar sonra, adətən heç kimin izah edə bilmədiyi ləğv zamanı üzə çıxan o səssiz uyğunsuzluğu yaradar. Mesajı verilənlərə dair şikayət kimi oxuyun, və araşdırma CA qovluğunun içində qalır.
Heç nəyə toxunmazdan əvvəl CA vəziyyətinin surətini çıxarın
Yalnız verilənlər bazası faylını deyil, bütün CA qovluğunun anlıq görüntüsünü götürün. İndeks, onun atribut faylı, seriya və CRL nömrə faylları, şəxsi açar və buraxılmış sertifikatlar sonrakı əməliyyatların hamısında iştirak edir, birini bərpa edib digərlərini qaçıran təmir isə ikinci insident yaradır. Mövcud olduqda CA-nın öz ehtiyat nüsxələmə qaydasından istifadə edin və iş boyu planlı buraxılışı dayandırın.
Uğursuz əmrin faktiki yüklədiyi OpenSSL buraxılışını və konfiqurasiya faylını qeyd edin. Quraşdırmalar çox vaxt birdən çox CA qovluğu saxlayır və xəta yalnız seçilmiş konfiqurasiyanın adlandırdığı verilənlər bazasına nisbətdə məna daşıyır.
Qeydi tapın və onun tarix sahəsini deşifrə edin
Bildirilən sətir nömrəsi birinci qeyddən sayılır, ona görə də sed -n '22p' index.txt yuxarıda boş və ya şərh sətri olmadığını təsdiqlədikdən sonra problemli qeydə düşür. Həmin sətri görünən ayırıcılarla çap edin, çünki tablar və sonda duran boşluqlar adidir və adi redaktor pəncərəsində görünmür.
Bitmə sahəsi eni ildən asılı olan vaxt damğasıdır. 2049-a qədər olan dəyərlər UTCTime formatında YYMMDDHHMMSSZ kimi yazılır, sonrakı dəyərlər isə dördrəqəmli illə GeneralizedTime-a keçir. İki formanı qarışdıran və ya analizatorun indi dörd rəqəm gözlədiyi yerdə iki rəqəmli il daşıyan qeyd məhz bu nöqtədə uğursuz olur. Yarıda qalmış yazıdan qalan kəsilmiş sahə də belədir.
Qeydi başqa CA-nın faylı ilə deyil, istinad etdiyi sertifikatla müqayisə edin. İmzalanmış sertifikat etibarlılığın nə deməli olduğu barədə səlahiyyətli mənbədir və o, artıq təhlil oluna bilən obyekt kimi mövcuddur.
Qeydi imzalanmış sertifikata uyğun təmir edin
Həqiqi tarixləri bu əmrlə oxuyun: openssl x509 -in issued.pem -noout -dates -serial -subject. Çevirin notAfter dəyərini build-inizin həmin il üçün yazdığı damğa eninə, və bir simvolu dəyişməzdən əvvəl seriya nömrəsinin redaktə edəcəyiniz qeydlə uyğun olduğunu təsdiqləyin.
Yalnız pozulmuş sahəni düzəldin, status hərfini və seriyanı saxlayın, sətrin qalanına toxunmayın. Qeyd heç bir imzalanmış sertifikatla uzlaşdırıla bilmirsə, onu kənar qeyd sayın və sətri əl ilə silmək əvəzinə CA-nın öz ləğv yolundan keçirin.
Təmiri il barədə təxminə uyğunlaşdırmaq üçün tarixi kəsməklə etməyin. İki simvolluq kəsim build-lər arasında daşınmır və verilənlər bazasının gələcək dublikat-subyekt və CRL yoxlamalarına bildirdiyi etibarlılığı səssizcə dəyişir. İlkin dəyər bərpa oluna bilmirsə, yeni seriya nömrəsi ilə yenidən buraxın və köhnənin niyə tərk edildiyini yazın. Audit izi təmirin bir hissəsidir, ətrafındakı sənədləşmə deyil.
Getməzdən əvvəl buraxılışı və CRL yaradılmasını yoxlayın
Eyni konfiqurasiya ilə bir buraxılış işlədin və onun sətir nömrəsi şikayəti olmadan tamamlandığını təsdiqləyin. Sonra openssl ca -gencrl -config openssl.cnf ilə CRL yaradın və onun təhlil olunduğunu yoxlayın, çünki zədələnmiş qeyd çox vaxt imzalama zamanı deyil, məhz orada üzə çıxır.
Yeni sertifikatı bu əmrlə yoxlayın: openssl x509 -noout -dates -serial və onu CA-nın indicə yazdığı sətirlə müqayisə edin. Status hərfinin və bitmə tarixinin sertifikatla uzlaşdığını, həmçinin openssl verify -CAfile ca.pem issued.pem əmrinin xətasız qayıtdığını təsdiqləyin. Sonra planlı buraxılışı bərpa edin və birinci işə nəzarət edin, çünki ikinci pozulmuş sətir özünü dərhal bildirəcək.