如何获得Apache HTTP服务器来logging请求的SSL协议

我正计划在Ubuntu 14.04上运行的apache 2.4服务器上禁用TLSV1。 在这之前,我认为分析有多less用户会受到影响是一件好事。 我已经通读了apache日志文档,这应该允许我logging环境variables。

http://httpd.apache.org/docs/2.4/mod/mod_log_config.html

我有一个RewriteRule我设置redirect用户TLSV1工作正常,这个规则是这样的。

RewriteCond %{SSL:SSL_PROTOCOL} ^TLSv1$ RewriteRule ^/test* /bad-ssl.html [L] 

这是完美的。 但是我不能让日志模块写入SSl环境variables。

  CustomLog ${APACHE_LOG_DIR}/ssl.log "%a \"%{SSL_PROTOCOL}e\" \"%{SSL:SSL_PROTOCOL}e\" \"%{evn:SSL_PROTOCOL}e\"" 

我错过了什么?

因此,variablesSSL_PROTOCOL(和所有其他mod_sslvariables)在技术上不是环境variables

 "%{VARNAME}e" 

将无法工作。

根据http://httpd.apache.org/docs/2.4/mod/mod_ssl.html (部分自定义日志格式 ),你必须使用语法:

 "%{VARNAME}x" 

用于SSLvariables。 要修改你的configuration,它应该是:

 CustomLog ${APACHE_LOG_DIR}/ssl.log "%a \"%{SSL_PROTOCOL}x\"" 

我假设SSL:SSL_PROTOCOL和evn:SSL_PROTOCOL只是试图达到相同的目的。