Apache HTTP Fallback в случае сбоя SSL Handshake

Apache HTTP Fallback в случае сбоя SSL Handshake

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

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

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

решение1

клиент должен попытаться установить 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>

Связанный контент