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, хоёр дахь клиентээс ижил гинж, алдааны гэрчилгээнд өгч буй нэр. Хэрэв цаг зөв бөгөөд цонх хараахан нээгдээгүй бол бусад нь операторын ажил бөгөөд таны талаас зөв алхам нь шалгалтыг сулруулах биш, цонхыг хүлээх юм.