у меня есть очень конкретный вариант использования. Я хочу проверить с помощью Apache, может ли браузер пользователя использовать современные CipherSuites.
Apache вызывается с https и должен попытаться установить SSL-соединение, если это не удается, Apache должен перенаправить пользователя на резервный HTTP-сайт, где ему сообщают, что его браузер устарел.
Конечно, мне нужно использовать mod_rewrite, у которого даже есть переменная https, которая содержит вкл / выкл, в зависимости от того, установлен ли SSL. Но как я могу сказать apache продолжить, если первоначальное SSL-рукопожатие не удалось?
клиент должен попытаться установить SSL-соединение, если это не удается, Apache должен перенаправить пользователя на резервный HTTP-сайт, где ему сообщают, что его браузер устарел.
Я думаю, что вы не можете, рукопожатие TLS завершится ошибкой на этапе задолго до этапа, когда клиент и веб-сервер могут обмениваться сообщениями протокола HTTP.
Вместо:
SSLCipherSuite ...
директива.SSLHonorCipherOrder on
директива.то есть что-то вроде:
# 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>