根据 URL 路径或 apache(mod_ssl) 中的特定服务设置 SSL/TLS 协议版本

Posted

技术标签:

【中文标题】根据 URL 路径或 apache(mod_ssl) 中的特定服务设置 SSL/TLS 协议版本【英文标题】:setting SSL/TLS protocol version according to URL path or specific service in apache(mod_ssl) 【发布时间】:2017-02-16 07:40:36 【问题描述】:

我想在我的服务器 httpd-ssl.conf 中设置“强制使用 TLS 1.2”

SSLProtocol -all +TLSv1.2

但我也在考虑是否某些客户端模块不支持 TLS 1.2, 我想给它一个例外,即 TLS 1.x 是可以接受的。

我能做到吗? 例如禁用特定 URL 路径 ( https:///specific/path/ ) 或特定服务或类似内容中的 TLS_1.2 限制。

谢谢!

【问题讨论】:

【参考方案1】:

路径组件仅在成功的 TLS 握手后才知道。另外,可以在同一个 TCP 连接中完成多个 HTTP 请求(具有不同的路径)。虽然理论上服务器可以首先允许与旧协议版本的 TLS 握手,然后如果客户端使用已建立的 TLS 会话访问需要更好 TLS 版本的路径,则断开连接我不认为这可以配置阿帕奇。

【讨论】:

是的,我认为你是对的,似乎使用路径不是一个好主意。谢谢!【参考方案2】:

这可能对 APACHE 有所帮助:https://httpd.apache.org/docs/trunk/ssl/ssl_howto.html

如何创建一个 SSL 服务器,它通常接受多种类型的密码,但需要强大的密码才能访问特定的 URL? 显然,将密码限制为强变体的服务器范围的 SSLCipherSuite 不是这里的答案。但是,mod_ssl 可以在 Location 块中重新配置,以提供每个目录的解决方案,并且可以自动强制重新协商 SSL 参数以满足新配置。这可以按如下方式完成:

# be liberal in general -- use Mozilla's "Intermediate" ciphersuites (weaker
# ciphersuites may also be used, but will not be documented here)
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

<Location "/strong/area">
# but https://hostname/strong/area/ and below requires strong ciphersuites
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
</Location>

【讨论】:

以上是关于根据 URL 路径或 apache(mod_ssl) 中的特定服务设置 SSL/TLS 协议版本的主要内容,如果未能解决你的问题,请参考以下文章

如何 out.println Apache JKEnvVar SSL_CLIENT_DN 从 mod_ssl 到 java、javascript 或 html?

Linux_install mod_ssl openssl apache

无法加载 Apache mod_ssl

mod_ssl 2.8.31 是不是适用于 Apache 2.2?

特定用户的 Apache,mod_ssl“请求失败:读取标头时出错”

无故交叉的红色 https (Apache + mod_ssl)