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

时间:2016-10-07 10:22:06

标签: apache ssl tls1.2 mod-ssl

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

SSLProtocol -all +TLSv1.2

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

<块引用>

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