Назад | Перейти на главную страницу

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

В настоящее время я использую 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), но HTML каким-то чудом исчез в сети. Я подозреваю, что это связано с поддержанием активности соединения? Возможно, агент браузера IE9 обрабатывает это по-другому и почему-то считает, что соединение не удалось, и перезагружает страницу для повторной попытки?

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

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

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

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

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

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

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

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

Тогда при отсутствии поддержки активности соединений между запросами клиентский компьютер / браузер должен будет выполнять согласование 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 чтобы проверить, какие заголовки отправляются. Также вы можете использовать что-то вроде скрипач