Я планирую отключить TLSV1 на сервере apache 2.4, работающем на Ubuntu 14.04. Прежде чем это сделать, я подумал, что было бы хорошо проанализировать, на скольких пользователей это повлияет. Я прочитал документацию журнала apache, которая должна позволить мне регистрировать переменные среды.
http://httpd.apache.org/docs/2.4/mod/mod_log_config.html
У меня есть RewriteRule, я настроил перенаправления пользователей с TLSV1, который отлично работает, это правило выглядит так.
RewriteCond %{SSL:SSL_PROTOCOL} ^TLSv1$
RewriteRule ^/test* /bad-ssl.html [L]
Что отлично работает. Однако я не могу заставить модуль журнала записывать переменные среды SSl.
CustomLog ${APACHE_LOG_DIR}/ssl.log "%a \"%{SSL_PROTOCOL}e\" \"%{SSL:SSL_PROTOCOL}e\" \"%{evn:SSL_PROTOCOL}e\""
Что мне не хватает?
Переменная SSL_PROTOCOL (и все другие переменные mod_ssl) технически не является переменной среды, поэтому
"%{VARNAME}e"
не сработает.
В соответствии с http://httpd.apache.org/docs/2.4/mod/mod_ssl.html (Раздел Пользовательские форматы журналов) вы должны использовать синтаксис:
"%{VARNAME}x"
для переменных SSL. Чтобы изменить вашу конфигурацию, она должна выглядеть так:
CustomLog ${APACHE_LOG_DIR}/ssl.log "%a \"%{SSL_PROTOCOL}x\""
Я предполагаю, что SSL: SSL_PROTOCOL и evn: SSL_PROTOCOL были всего лишь попытками добиться того же.