VPN-ийн ард байх кэш: HTTPS юуг нуух хэвээр байна
VPN-ийн гаралтын прокси нь төгсгөлөөс төгсгөл хүртэл HTTPS уншиж чадахгүй хэвээр. Өөр сервер нэмэхийн өмнө кэшлэх боломжтой ачаалал болон зориуд тогтоосон TLS хилээ сонгоно уу.
VPN серверийн дэргэдэх кэш нь туннелийн ард байгаа бүх хүнд үнэгүй зурвасын өргөн мэт санагддаг. Гэвч тийм биш, учир нь тэр цэгээр дамжих байтууд нь браузер болон сайтыг хоёр үзүүр болгосон TLS сессээр хамгаалагдсан хэвээр байдаг. VPN гарц нь зөвхөн өөрийн гадаад шифрлэлтийг хасдаг, аппликейшныг биш. Техник нэмэхийн өмнө ямар давтагдах объектыг дахин ашиглахаа шийдээрэй.
TLS сесс нь браузерынх
Энгийн HTTPS-д браузер сайттай түлхүүрүүдийг хэлэлцэж, гар барилтын дараах бичлэг бүр тэр хос үзүүрт зориулж шифрлэгддэг. VPN гарц нь өөрийн үүсгэсэн туннелийг тайлж, дараа нь тунгалаг бус TLS бичлэгүүдийг дамжуулдаг. Тэр очих газрууд, цаг хугацаа, хэмжээг хардаг, хүсэлтийн мөр эсвэл хариултын үндсэн хэсгийг биш. Энэ бол ямар ч кэшийн амьдрах ёстой хил юм.
Үүнийг эвдэх аливаа загвар бол TLS-ийн таслан сонсох загвар бөгөөд сертификатын итгэл, төхөөрөмжийн удирдлагад өөрийн үр дагавартай.
CONNECT бол туннель, кэш биш
Ил тод урагш прокси ихэвчлэн HTTP CONNECT хүсэлт хүлээн авч, дараа нь байтуудыг хоёр чиглэлд дамжуулдаг. Дамжуулах нь гол үг: прокси шифрлэгдсэн яриаг шинжлэхгүй.
curl -sSI -x http://proxy.example:3128 https://example.com/Хариултын толгойнууд проксийн туннельтэй харьцахаас гардаг, хуудасны кэшлэсэн хуулбараас биш. Амжилттай CONNECT нь зам ажиллаж байгааг илэрхийлнэ, дахин ашиглахаар ямар нэгэн зүйл хадгалагдсаныг биш. 443 портыг кэш рүү чиглүүлэх нь түүнд TLS ярихыг заахгүй, учир нь кэшлэхэд уншиж болох мессеж хэрэгтэй. Клиентийн тохиргоо нь дэмжигдсэн ил тод проксийн тохиргоог ашиглах ёстой, тайлбаргүй дахин чиглүүлэлтийг биш.
Өөрөө ажиллуулж буй зүйлээ кэшлээрэй, үзэж буй зүйлээ биш
Агуулга таных бол урвуу прокси TLS-ийг дуусгаж, зөвшөөрөгдсөн хариултыг зориуд хадгалж чадна. Тэр багцын санд хамаарах бол төслийн дэмждэг толийг ашиглана уу.
nginx -T | grep -n "proxy_cache"
curl -sSI https://mirror.example/pkg/index.json | grep -i -E "cache-control|age"Эхний команд кэшийн бүс тохируулагдсан эсэх, хаана хэрэгжихийг харуулна, хоёр дахь нь нэг объектын эх сурвалжийн өөрийн кэшлэх зааврыг харуулна. Хамтарсан кэш нь шинэлэг байдал, кэшийн хяналт, дүрслэлийг ялгах хүсэлтийн шинж чанарыг хүндэтгэх ёстой; private болон no-store нь өөр өөр утгатай бөгөөд цохилтын харьцааг өсгөхийн тулд аль нэгийг нь ч хасах ёсгүй. HTTP кэшлэх дүрэм нь баталгаажсан хүсэлтэд хариулт хадгалахыг ч хязгаарладаг бөгөөд яг тэнд хувийн хуудас мэдээлэл алдагдах болдог. Проксийг нээлттэй реле болгон ил гаргахын оронд зөвшөөрөгдсөн клиентээр хязгаарлаарай.
Цохилтыг хэмжээрэй, секунд хэмжигчийг биш
Хурдан хоёр дахь хүсэлт нь шинэ кэш ямар нэгэн зүйл хийснийг батлахгүй, учир нь браузер болон үйлдлийн системүүд өөрсдөө түрэмгий кэшлэдэг. Проксоос цохилт, алдалтын тоолуур асууж, хяналттай давталтын үеэр эх сурвалжийн урсгалыг ажиглаарай. Мэдэгдэж буй объектыг нэг удаа давтан татаж, эхлээд кэш асаалттай, дараа нь тойрч гарсан байх үед өнгөрсөн цагийг биш, эх сурвалжийн өгсөн байтуудыг харьцуулаарай. Дараа нь зөвшөөрлийн хилийг шалгаарай: нэвтрэх шаардлагатай нөөцийг өөр клиентэд өгөх ёсгүй.
Ачаалал, кэшийн түлхүүр, дахин ашиглахыг зөвшөөрсөн бодлогыг тэмдэглээрэй. Кэш бол оновчлолын хувцас өмссөн мэдээлэл хуваалцах шийдвэр юм.