Gunakan skema yang tercantum dalam dokumentasi listener proxy. Saat memilih kandidat dari daftar proxy HTTP, pastikan skema listener sebelum mengatur klien. Situs HTTPS bisa menggunakan http://proxy.example:8080; mengganti nilai itu menjadi https:// berarti meminta jenis koneksi lain ke proxy.

URL proxyURL situsKoneksi
http://proxy.example:8080http://example.com/HTTP tanpa enkripsi ke proxy dan tujuan.
http://proxy.example:8080https://example.com/HTTP CONNECT ke proxy, lalu TLS ke tujuan melalui terowongan.
https://proxy.example:8443https://example.com/TLS ke proxy, dengan terowongan menuju tujuan dibawa di dalam koneksi tersebut.

Untuk listener HTTP biasa yang mengizinkan CONNECT, konfigurasi ini sesuai:

curl --proxy http://127.0.0.1:8080 https://example.com/

Handshake TLS dengan situs berlangsung setelah proxy menerima terowongan. Jika URL proxy diubah menjadi https:// padahal listener hanya memahami HTTP tanpa enkripsi, negosiasi TLS dengan proxy bisa gagal sebelum situs dihubungi.

Apa tambahan perlindungan TLS ke proxy?

Proxy yang mendukung TLS melindungi jalur antara klien dan proxy, termasuk pertukaran CONNECT serta autentikasi proxy, dari penyadapan pasif di jalur itu. Operator proxy tetap menangani koneksi dan mengetahui tujuan terowongan. Klien dan listener sama-sama harus mendukung mode ini:

curl --proxy https://proxy.example:8443 https://example.com/

Gunakan nama host layanan yang sebenarnya; sertifikatnya harus cocok dan tepercaya. Pembatasan tujuan dan port tetap berlaku.

Dengan HTTPS di kedua sisi, ada dua pemeriksaan sertifikat. curl memungkinkan keduanya diatur secara terpisah:

curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/

--proxy-cacert menyediakan pengaturan kepercayaan untuk proxy; --cacert untuk tujuan. Bila perlu, gunakan bundel sertifikat dari administrator; pengaturan kepercayaan sistem mungkin sudah cukup. Tentukan handshake mana yang gagal sebelum mengubah salah satunya.

Label “HTTPS” pada daftar proxy mungkin hanya berarti endpoint tersebut lulus tes CONNECT. Jika daftar itu tidak menjelaskan tesnya, label tersebut saja tidak memberi tahu apakah listener mengharapkan http:// atau https://.

Artikel terkait