Настройки IE9 и apache SSL nokeepalive


8

В настоящее время я использую Apache 2.2.3 и CentOS 5.4 для своих приложений php (php работает на 5.3.7), а приложение работает на HTTPS и с сертификатом Root CA.

Проблема в том, что у нас были некоторые странные проблемы с IE9 (только IE9). Когда браузер IE9 отправляет запрос HTTPS на наш сервер, иногда нет ответа HTTPS. Я заметил, что IE9 обновит страницу. Чтобы быть более конкретным, упомянутая страница является страницей входа. Поэтому, когда я ввожу имя пользователя и пароль и отправляю форму, но ответа нет, кажется, что IE9 снова загружает ту же страницу входа. (с пустым именем пользователя и паролем)

При трассировке с уровня приложения я замечаю, что получил имя пользователя и пароль, и приложение завершилось без ошибок.

Основная головная боль состоит в том, что это не может быть воспроизведено каждый раз. Иногда мы можем войти без каких-либо проблем, но иногда это будет иметь упомянутую выше проблему, упомянутую выше.

Теперь в нашу компанию попали сетевые команды, разработчики и другие команды. Наш apache работает под балансировщиком нагрузки. Сетевые парни утверждают, что они никогда не меняют никаких настроек, единственное изменение - это наше приложение. Но с точки зрения разработчиков изменения никак не связаны с процессом входа в систему.

С моей точки зрения, похоже, что когда пользователь нажимает кнопку «Отправить», приложение (apache) делает то, что делает, отправляя HTML (HTTPS Response), но HTML каким-то чудесным образом исчезает в сети. Я подозреваю, что есть какое-то отношение к поддержанию связи? Вероятно, браузерный агент IE9 обрабатывает его по-другому, и каким-то образом он считает, что соединение не установлено и перезагружает страницу для повторной попытки?

Но в любом случае я заметил следующие настройки в Apache для доступа SSL:

SetEnvIf Пользователь-агент ". MSIE. " \ Nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

Не знаете, как мы можем настроить таким образом, чтобы исключить IE9 и выше? Когда я выполняю поиск, вышеуказанные настройки должны исправить давнюю проблему, когда IE соединяется с Apache. Но поскольку IE9 является совершенно новым, возможно, проблема уже устранена, и что нам нужно обновить настройки?

Надеюсь, кто-то может пролить свет на это ..



blogs.msdn.com/b/ieinternals/archive/2011/03/26/… Нашел эту ссылку, в которой предлагалось внести изменения в BrowserMatch ". * MSIE [2-5] \ .. *" \ nokeepalive ssl-unclean -shutdown \ downgrade-1.0 force-response-1.0, но потребуется время для его проверки. Между тем не уверен, что у кого-то тоже возникают подобные проблемы, и что они делают для его решения ..
— forestclown

Что заставляет вас подозревать, что поддержание жизни связано? Можете ли вы выполнить захват сетевого трафика для подтверждения?
— Шейн Мэдден

Это просто дикая догадка, потому что это происходит только в IE9, и в отношении установки apache в настоящее время это единственная установка, которую я заметил, которая делает что-то конкретно с IE ...
— forestclown

Вы когда-нибудь решали это? Каково было решение?

Ответы:


3

Скорее всего, настройка сервера / сети где-то имеет проблему и не вызвана какими-либо причудами IE9.

Прежде всего, избавьтесь от древней конфигурации до IE6: SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0и просто попробуйте запустить ее вообще (в любых формах). Если вам не нужна поддержка IE5, что я сомневаюсь, что вы делаете, в этом случае вы правы, чтобы изменить регулярное выражение наMSIE [2-5]

Балансировщик нагрузки и отсутствие поддержки активности, вероятно, является проблемой. Я бы очень подозрительно относился к балансировщику нагрузки и точно проверял, что там происходит.

Балансировщик нагрузки обычно «балансирует нагрузку» между двумя или более IP-адресами (внутренним или внешним, это не имеет значения в данный момент).

Тогда, не имея keepalive для соединений между запросами, клиентский компьютер / браузер должен будет выполнять согласование SSL для каждого запроса. Объедините это с медлительностью и низкими настройками тайм-аута, и мы можем получить проблемы с несоответствием сертификата SSL, и IE, вероятно, будет освобожден из-за строгой настройки безопасности. Я не исследовал точно, имеет ли IE9 только эту черту. Я подозреваю, что другие браузеры тоже делают это и работают с этим по-другому.

Если вы используете SSL, вы должны иметь KeepAlive, так как это сделает сайт намного быстрее и не придется проходить SSL-согласование снова и снова, что приводит к сбою, потому что балансировщик нагрузки не поддерживает сеанс на одном и том же сервере в течение времени жизни посетителя. ,

Если ваше приложение является внутренним (в интрасети), ваш балансировщик нагрузки случайным образом перебрасывает IP-адреса на вас, и SSL должен быть одинаковым для каждого соединения.

Если это не входит в интрасеть, то это может быть правдой, я не знаю, как настроена ваша сеть, но вам следует сначала проверить это. Отключите балансировщик нагрузки и посмотрите, существует ли проблема. и, безусловно, положить сохранить в живых.

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

Я бы также проверил, есть ли у вас обратная настройка DNS вообще. Если это указывает на балансировщик нагрузки или сервер позади балансировщика нагрузки или что нет.

Проверьте ваше соединение и проанализируйте ваши заголовки, если внешние используют что-то вроде redbot.org или webpagetest.org, чтобы проверить, какие заголовки отправляются. Также вы можете использовать что-то вроде скрипача


1
ssl-unclean-shutdown все еще требуется для IE> = 6 alexmeyer.com/linux/apachekeepalive.html
— user2299634
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.