OpenVPN сертификат болон түлхүүрийг хэрхэн шийддэг: дотор PEM эсвэл зам
Нэг л заавар нь файлын зам эсвэл дотор нь байрлуулсан PEM объектыг агуулна. Сертификатуудыг зөөхөөс өмнө ачаалсан профайл аль хэлбэрийг ашиглаж байгааг уншина уу.
Мессеж нь OpenVPN дотор байрлуулсан сертификатыг ачаалж чадахгүй гэж хэлдэг бол таны санаанд байгаа файлын нэр эсрэгээр хэлнэ. Файлын системд юу байгаагаас илүү парсер юу хүлээн авсан нь чухал, учир нь cert заавар нь огт өөр хоёр төрлийн утгыг хүлээн авдаг. Нэг нь түүний нээх зам; нөгөө нь тохиргооны дотор ирсэн PEM текст юм. Ажиллаж буй клиент ямар хэлбэр авсныг мэдэх хүртэл засвар бүр таамаг юм.
Хоёр хадгалалтын хэлбэр, нэг заавар
cert, key, ca зааварууд тус бүр зам эсвэл дотор нь байрлуулсан блок хүлээн авдаг. Утга нь зам байвал OpenVPN тэр файлыг нээж, объектыг дискээс уншина. Тохиргоонд cert шошгоор хязгаарласан блок байвал мөн заавар нь оронд нь тэр шошгуудын хоорондох агуулгыг ашиглах бөгөөд тусдаа файл оролцохгүй.
Хоёр хэлбэр эцэст нь ижил төрлийн объект гаргадаг тул ажиллаж байгаа байршуулалт өөр ямар ч өөрчлөлтгүйгээр тэдгээрийн хооронд шилжиж болно. Өөрийн дотор клиентийн сертификат болон хувийн түлхүүрийг агуулсан профайл бие даасан бөгөөд түүнийг өөр машин руу хуулах нь сертификатын хавтасыг хамт хуулахгүйгээр ажилладаг.
Эсрэг нь үнэн биш. Өөрийн өгөгдлийг дотроо байрлуулдаг профайлын хажууд client.crt тавих нь юу ч өөрчлөхгүй, учир нь тохиргоонд юу ч тэр файлыг заахгүй. Илт байгаа файлыг үл хайхранд тооцож байгаа мэт харагдах хамгийн түгээмэл шалтгаан энэ юм.
Дотор байрлуулсан блок хэрхэн объект болдог
Дотор байрлуулсан агуулгыг тохиргооноос гаргаж аваад PEM парсерт текст хэлбэрээр өгдөг. Тэр парсер ердийн хил хязгаарыг хүлээдэг: BEGIN мөр, base64 ачаалал болон тохирох END мөр. Хэрэв блок бүтэлгүй хуулбараас таслагдсан, татаж авах хуудас түүнийг HTML дотор боосон, эсвэл зураасыг хэвийн болгосон редакторт нээгдсэн бол парсер байгаа мэт харагдах агуулга дээр бүтэлгүйтдэг.
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
Алдааны томьёолол төөрөгдүүлдэг нь мөн үүнээс. Дотор гэдэг үг ачигч хаана харсныг дүрсэлдэг, тэнд юу олсныг биш. Тохиргоонд нэрлэсэн файл болон дотор нь байрлуулсан объект нь үндсэн байтууд хэрэглэх боломжгүй үед ижил гомдол үүсгэж болно.
Ачаалсан профайл бодитоор ямар хэлбэр ашиглаж байгааг шалгана уу, редактор тань санамсаргүй нээсэн файлыг биш:
grep -nE '^(ca|cert|key) |^<(ca|cert|key)>' client.ovpn
Замын лавлагаа хэрхэн шийдэгддэг
Замын утга нь тохиргоог агуулсан хавтастай биш, клиентийн ажлын хавтастай харьцуулан нээгддэг. systemd-ийн дор тэр ажлын хавтас нь юнит тогтоосон зүйл бөгөөд таны бүрхүүлээс интерактив ажиллуулах нь огт өөр зүйлийг өвлөдөг. Тиймээс нэг тохиргооны файл гараар шалгахад ажиллаж, үйлчилгээ хэлбэрээр бүтэлгүйтэж болно.
Харьцангуй замууд мөн адил тодорхойгүй байдлыг өвлөдөг. Энгийн файлын нэрийг хараад терминалтай тань таарч байна гэж таамаглахын оронд үйлдвэрлэлд процессын одоогийн хавтас юу болохыг асуугаарай.
Тусдаа хадгалсан сертификатын хувьд офлайн шинжилгээ нь объектыг түүний дээр ямар нэг зүйлийг дибаг хийхээс өмнө баталгаажуулна:
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -check
Эдгээр командууд файлууд уншигдахуйц, бүтцийн хувьд хүчинтэй гэдгийг нотолдог. Тэд түншлэгч нийлүүлэгчид итгэдэг, сертификат хүчинтэй хугацааны цонх дотор байгаа, эсвэл түлхүүр түүнд хамаардаг гэдгийг нотолдоггүй.
Парсерын алдаа юу гэж хэлж чадах, юу гэж хэлж чадахгүй
Шинжилгээний бүтэлгүйтэл асуудлыг нэг оролт, нэг үе шат руу хязгаарладаг. Клиент хоёр хадгалалтын хэлбэрийн алийг нь ашигласныг хэлэхгүй бөгөөд объект хүлээн авах байсан эсэхийг ч хэлэхгүй. Эдгээр нь тусдаа нотолгоотой тусдаа асуултууд юм.
Шинжилгээ амжилттай болсны дараа дараагийн бүтэлгүйтэл нь хожуу үе шатанд хамаарна. Итгэлийн татгалзал, зорилгын зөрүү эсвэл түлхүүрийн зөрүүг ачигч биш, түншлэгч эсвэл TLS давхарга мэдээлдэг. Нэг файлыг дахин дахин солих нь тэр алдааг хөдөлгөхгүй.
Мөрдөн шалгах үеэр мэдрэмтгий хагасыг нийтийн тайлангаас гадуур байлгаарай. Заавруудын нэр, алдааны текстийг блокийн бүтцийг хуваалцаж, түлхүүрийн материал болон ямар ч таних ачааллыг хасна уу. openvpn(8) гарын авлага файлын заавруудын хоёр хэлбэр болон тэдний ард байгаа ажлын хавтасны зан төлөвийг баримтжуулсан.