Saya sedang membangun proxy untuk API internal untuk memungkinkan klien terhubung tanpa harus memiliki sertifikat yang ditandatangani sendiri.
Klien (dibangun, dimiliki, dan hanya digunakan secara internal) akan terhubung melalui SSL ke kotak nginx, tempat saya menggunakan XSendfile untuk memvalidasi kredensial di tingkat aplikasi (aplikasi rel). Jika kredensial valid, koneksi dilewatkan kembali ke nginx di mana ia menggunakan proxy_pass untuk mengirim koneksi ke server upstream.
Sekarang ini berfungsi baik untuk koneksi http standar, tapi saya mencoba mencari cara untuk menambahkan sertifikat kami ke dalam campuran.
Pertanyaan ini hampir identik dengan yang ini , tetapi dengan persyaratan sertifikat yang canggung.
Apakah ini mungkin dengan nginx? Apakah ada solusi yang lebih baik?
Saya juga menerima http dari klien -> nginx, dan sertifikat yang ditandatangani sendiri dari nginx ke API.
sumber
proxy_ssl_server_name on;
hanya itu yang saya perlukan agar ini berfungsi saat proksi lalu lintas ke host di Google App Engine menggunakan SSL yang dikelola Google bawaannya! (Ini bukan sertifikat yang ditandatangani sendiri atau apa pun, jadi hanya perlu satu baris itu). Terima kasih atas tipnya.Saya pikir Anda mungkin menginginkan sesuatu seperti ini (jelas disederhanakan untuk contoh ini):
Satu-satunya hal yang mungkin harus Anda ubah adalah membuat "Host" menjadi eksplisit - jika, misalnya, nama host yang Anda proksi tidak sama dengan nama host yang digunakan pada server proxy nginx.
sumber
Bagi siapa pun yang menemukan ini di masa depan, saya akhirnya tidak menggunakan nginx untuk ini.
Sebaliknya, saya akhirnya menggunakan stunnel di "mode klien". Sangat mudah diatur, dan melakukan apa yang saya butuhkan.
sumber