Apakah mungkin memiliki koneksi HTTPS melalui server proxy? Jika ya, jenis server proxy apa yang mengizinkan ini?
Digandakan dengan Bagaimana cara menggunakan proxy Socks 5 dengan Apache HTTP Client 4?
Apakah mungkin memiliki koneksi HTTPS melalui server proxy? Jika ya, jenis server proxy apa yang mengizinkan ini?
Digandakan dengan Bagaimana cara menggunakan proxy Socks 5 dengan Apache HTTP Client 4?
Jawaban:
TLS / SSL (S dalam HTTPS) menjamin bahwa tidak ada penyadap antara Anda dan server yang Anda hubungi, yaitu tidak ada proxy. Biasanya, Anda gunakan
CONNECT
untuk membuka koneksi TCP melalui proxy. Dalam kasus ini, proxy tidak akan dapat menyimpan, membaca, atau memodifikasi permintaan / tanggapan apa pun, dan oleh karena itu menjadi tidak berguna.Jika Anda ingin proxy dapat membaca informasi, Anda dapat mengambil pendekatan berikut:
Contohnya adalah benjolan SSL Squid . Demikian pula, bersendawa dapat dikonfigurasi untuk melakukan ini. Ini juga telah digunakan dalam konteks yang tidak terlalu berbahaya oleh ISP Mesir .
Perhatikan bahwa situs web dan browser modern dapat menggunakan HPKP atau pin sertifikat bawaan yang mengalahkan pendekatan ini.
sumber
Unconditionally trusted
mengacu pada sertifikat CA. Sertifikat CA tidak memiliki domain. Saya telah mengubah jawaban dengan dua contoh di mana ini berfungsi dalam praktik tanpa peringatan apa pun kepada pengguna.Jawaban singkatnya adalah: Ini mungkin, dan dapat dilakukan dengan proxy HTTP khusus atau proxy SOCKS.
Pertama dan terpenting, HTTPS menggunakan SSL / TLS yang dengan desain memastikan keamanan ujung ke ujung dengan membuat saluran komunikasi yang aman melalui saluran yang tidak aman. Jika proxy HTTP dapat melihat isinya, maka itu adalah penyadap man-in-the-middle dan ini mengalahkan tujuan SSL / TLS. Jadi pasti ada beberapa trik yang dimainkan jika kita ingin melakukan proxy melalui proxy HTTP biasa.
Caranya adalah, kita mengubah proxy HTTP menjadi proxy TCP dengan perintah khusus bernama
CONNECT
. Tidak semua proxy HTTP mendukung fitur ini, tetapi sekarang banyak yang mendukungnya. Proksi TCP tidak dapat melihat konten HTTP ditransfer dalam teks yang jelas, tetapi itu tidak memengaruhi kemampuannya untuk meneruskan paket bolak-balik. Dengan cara ini, klien dan server dapat berkomunikasi satu sama lain dengan bantuan proxy. Ini adalah cara aman untuk membuat proxy data HTTPS.Ada juga cara yang tidak aman untuk melakukannya, di mana proxy HTTP menjadi man-in-the-middle. Ini menerima koneksi yang dimulai klien, dan kemudian memulai koneksi lain ke server sebenarnya. Dalam SSL / TLS yang diterapkan dengan baik, klien akan diberi tahu bahwa proxy tersebut bukan server sebenarnya. Jadi klien harus mempercayai proxy dengan mengabaikan peringatan agar semuanya berfungsi. Setelah itu, proxy hanya mendekripsi data dari satu koneksi, mengenkripsi ulang, dan memasukkannya ke koneksi lainnya.
Akhirnya, kita pasti dapat melakukan proxy HTTPS melalui proxy SOCKS , karena proxy SOCKS bekerja pada level yang lebih rendah. Anda mungkin menganggap proxy SOCKS sebagai proxy TCP dan UDP.
sumber
Sejauh yang saya ingat, Anda perlu menggunakan query HTTP CONNECT pada proxy. ini akan mengubah koneksi permintaan menjadi terowongan TCP / IP transparan.
jadi anda perlu tahu apakah proxy server yang anda gunakan mendukung protokol ini.
sumber
Jika masih menarik, berikut adalah jawaban untuk pertanyaan serupa: Convert HTTP Proxy to HTTPS Proxy in Twisted
Untuk menjawab bagian kedua dari pertanyaan:
Di luar kotak, sebagian besar server proxy akan dikonfigurasi untuk mengizinkan koneksi HTTPS hanya ke port 443, jadi https URI dengan port khusus tidak akan berfungsi. Ini umumnya dapat dikonfigurasi, tergantung pada server proxy. Squid dan TinyProxy mendukung ini, misalnya.
sumber
Berikut adalah kode Java lengkap saya yang mendukung permintaan HTTP dan HTTPS menggunakan proxy SOCKS.
sumber
Anda dapat melakukannya menggunakan teknik man-in-the-middle dengan pembuatan SSL dinamis. Lihatlah mitmproxy - ini adalah proxy MITM berkemampuan SSL berbasis Python.
sumber
tunneling HTTPS melalui SSH (versi linux):
semua yang Anda lakukan di localhost. kemudian:
sumber
Saya telah mencoba
ssh -N -D 12345 login@proxy_server
localhost:12345
tetapi ini menghasilkan kesalahan "Sambungan tidak aman" setiap kali saya mencoba menyambung ke situs web https.
Solusinya adalah
Referensi dari dokumentasi samudra digital
Cara Merutekan Lalu Lintas Web Dengan Aman Tanpa VPN Menggunakan Terowongan SOCKS
sumber
Menurut saya, "memiliki koneksi HTTPS melalui server proxy" berarti jenis serangan server proxy Man-in-the-Middle. Saya pikir ini menanyakan apakah seseorang dapat terhubung ke server proxy http melalui TLS. Dan jawabannya ya.
Ya, lihat pertanyaan dan jawaban saya di sini. Server proxy HTTPs hanya berfungsi di SwitchOmega
Jenis server proxy yang menerapkan sertifikat SSL, seperti yang dilakukan situs web biasa. Tetapi Anda memerlukan
pac
file untuk browser untuk mengkonfigurasi koneksi proxy melalui SSL.sumber