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

Откат Apache HTTP в случае сбоя установления связи SSL

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

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

Конечно, мне нужно использовать mod_rewrite, у которого даже есть переменная https, которая содержит вкл / выкл, в зависимости от того, установлен ли SSL. Но как я могу сказать apache продолжить, если первоначальное SSL-рукопожатие не удалось?

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

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

Вместо:

  1. Примите все шифры.
  2. И упорядочить их от сильного к слабому с помощью SSLCipherSuite ... директива.
  3. Не позволяйте клиенту определять предпочтение шифра, но согласовывайте их в порядке предпочтения, который вы определили на шаге 2. с помощью SSLHonorCipherOrder on директива.
  4. Который должен приведет к соединению с самым надежным шифром, который поддерживает клиент. (Теоретически ваш фактический пробег может отличаться.)
  5. Если этот шифр ниже вашего порогового значения, примените логику для отображения сообщения безопасности.
  6. Защитите контент, которому действительно нужен надежный шифр, как объяснено в руководстве

то есть что-то вроде:

# be liberal in general
SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
SSLHonorCipherOrder on

<Location "/strong/area">
# but https://hostname/strong/area/ and below
# requires strong ciphers
SSLCipherSuite HIGH:!aNULL:!MD5
</Location>