IE9 dan apache pengaturan noke SSL

8

Saat ini saya menggunakan Apache 2.2.3 dan CentOS 5.4 untuk aplikasi php saya (php berjalan pada 5.3.7) dan aplikasi berjalan pada HTTPS dan dengan Root CA cert.

Masalahnya adalah kita telah mengalami beberapa masalah aneh dengan IE9 (hanya IE9). Ketika browser IE9 mengirimkan permintaan HTTPS ke server kami, terkadang tidak ada respons HTTPS. Yang saya perhatikan adalah bahwa IE9 akan me-refresh halaman. Untuk lebih spesifik, halaman yang disebutkan adalah halaman login. Jadi ketika saya memasukkan nama pengguna dan kata sandi dan mengirimkan formulir, tetapi tidak ada tanggapan dan IE9 sepertinya memuat kembali halaman login yang sama lagi. (dengan nama pengguna dan kata sandi kosong)

Ketika melacak dari level aplikasi, saya perhatikan saya telah menerima nama pengguna dan kata sandi dan aplikasi berakhir tanpa kesalahan.

Sakit kepala utamanya adalah tidak bisa direproduksi setiap waktu. Kadang-kadang kita bisa masuk tanpa masalah, tetapi kadang-kadang akan memiliki masalah yang disebutkan di atas.

Sekarang perusahaan kami memiliki tim jaringan, pengembang, dan tim lain. Apache kami berjalan di bawah penyeimbang beban. Orang-orang jaringan mengklaim bahwa mereka tidak pernah mengubah pengaturan apa pun, satu-satunya perubahan adalah aplikasi kita. Namun dari sudut pandang pengembang, perubahan itu tidak ada hubungannya dengan proses login.

Dari sudut pandang saya, sepertinya sekali klik pengguna mengirimkan, dan aplikasi (apache) melakukan apa yang dilakukannya dengan mengirimkan HTML (HTTPS Response), tetapi HTML entah bagaimana secara ajaib menghilang dalam jaringan. Saya curiga ada hubungannya dengan koneksi yang tetap hidup? Mungkin agen browser IE9 menanganinya secara berbeda, dan entah bagaimana ia menganggap koneksi gagal dan memuat ulang halaman untuk coba lagi?

Tapi bagaimanapun, saya perhatikan pengaturan berikut di Apache untuk koneksi SSL:

SetEnvIf User-Agent ". MSIE. " \ Nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

Tidak yakin bagaimana kita dapat mengatur dengan cara yang mengecualikan IE9 dan di atasnya? Ketika saya melakukan pencarian pengaturan di atas adalah untuk memperbaiki beberapa masalah lama ketika IE terhubung dengan Apache. Tetapi karena IE9 cukup baru mungkin masalahnya sudah diperbaiki, dan bahwa kita perlu memperbarui pengaturan?

Semoga seseorang dapat menjelaskan beberapa hal ini ..

badut hutan
sumber
blogs.msdn.com/b/ieinternals/archive/2011/03/26/... Menemukan tautan ini, yang menyarankan untuk melakukan perubahan ke BrowserMatch ". * MSIE [2-5] \ .. *" \ nokeepalive ssl-unclean -shutdown \ downgrade-1.0 force-response-1.0 tetapi akan membutuhkan waktu untuk mengujinya. Sementara itu tidak yakin apakah seseorang juga mengalami masalah serupa, dan apa yang mereka lakukan untuk menyelesaikannya ..
forestclown
Apa yang membuat Anda curiga bahwa tetap-hidup terkait? Bisakah Anda melakukan penangkapan pada lalu lintas jaringan untuk mengonfirmasi?
Shane Madden
Hanya tebakan liar karena itu hanya terjadi di IE9, dan mengenai pengaturan apache saat ini yang merupakan satu-satunya pengaturan yang saya perhatikan yang melakukan sesuatu yang khusus untuk IE ...
forestclown
Pernahkah Anda memecahkan ini? Apa solusinya?

Jawaban:

3

Kemungkinan besar pengaturan server / jaringan memiliki masalah di suatu tempat dan tidak disebabkan oleh kebiasaan IE9.

Pertama menyingkirkan pra konfigurasi IE6 kuno: SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0dan hanya mencoba menjalankan itu sama sekali (dalam bentuk apa pun). Kecuali Anda perlu mendukung IE5 yang saya ragu Anda lakukan dalam hal ini Anda benar untuk mengubah regex menjadiMSIE [2-5]

Load balancer dan tidak memiliki keepalive kemungkinan menjadi masalah. Saya akan sangat curiga terhadap penyeimbang beban dan memeriksa persis apa yang terjadi di sana terlebih dahulu.

Penyeimbang beban biasanya akan 'menyeimbangkan beban' antara dua atau lebih alamat ip (internal atau eksternal tidak masalah pada saat ini).

Maka karena tidak memiliki keepalive pada koneksi antara permintaan, komputer / browser klien harus melakukan negosiasi SSL untuk setiap permintaan. Kombinasikan ini dengan pengaturan lambat dan batas waktu rendah dan kita bisa mendapatkan masalah ketidakcocokan sertifikat SSL dan IE mungkin akan memberikan jaminan karena pengaturan keamanan yang ketat. Saya belum menyelidiki persis apakah IE9 hanya memiliki sifat ini. Saya menduga browser lain juga melakukan ini dan menghadapinya secara berbeda.

Jika Anda menggunakan SSL, Anda harus mengaktifkan KeepAlive karena itu akan membuat situs lebih cepat dan tidak harus melalui Negosiasi SSL berulang-ulang sehingga gagal karena load balancer tidak menjaga sesi pada server yang sama selama masa pengunjung. .

Jika aplikasi Anda bersifat internal (pada intranet) penyeimbang beban Anda secara acak melompati alamat ip pada Anda dan SSL membutuhkannya untuk per koneksi yang sama.

Jika tidak pada intranet, hal yang sama mungkin benar, saya tidak tahu bagaimana jaringan Anda diatur tetapi Anda harus memeriksa dulu. Nonaktifkan load balancer dan lihat apakah masalahnya ada. dan pasti tetap hidup.

http://httpd.apache.org/docs/2.2/mod/core.html#keepalive

Saya juga akan memeriksa apakah Anda mendapat pengaturan reverse dns sama sekali. Jika menunjuk ke penyeimbang beban atau server di belakang penyeimbang beban atau apa yang tidak.

Uji koneksi Anda dan analisis tajuk Anda, jika eksternal gunakan sesuatu seperti redbot.org atau webpagetest.org untuk memeriksa tajuk apa yang dikirimkan. Anda juga dapat menggunakan sesuatu seperti fiddler

Anthony Hatzopoulos
sumber
1
ssl-unclean-shutdown masih diperlukan untuk IE> = 6 alexmeyer.com/linux/apachekeepalive.html
user2299634