【问题标题】:TLS 1.3 to 1.2 downgrading in a proxy代理中的 TLS 1.3 到 1.2 降级
【发布时间】:2021-07-22 14:11:21
【问题描述】:
我正在尝试设置允许将 TLS 1.3 降级到 TLS 1.2 的 HTTPS 代理。
我的实际问题是:
- 旧浏览器+操作系统,只支持TLS 1.2,无法升级...
- 系统新增web服务器,只管理TLS 1.3,也不能碰...
- 我可以在连接两个组件的中间盒上安装软件。
我需要浏览器能够通过中间盒连接到网络服务器。
我在考虑 HAProxy,但我真的是个菜鸟,我不确定在哪里检查此功能以及如何实现此功能。
我应该如何设置 HAProxy ?
提前感谢您的帮助。
【问题讨论】:
标签:
tls1.2
haproxy
tls1.3
【解决方案1】:
如果我理解正确的话。浏览器使用 TLSv1.2 连接到 haproxy,而 haproxy 使用 TLSv1.3 连接到服务器。
下面是它的工作原理:
globals
ssl-default-bind-ciphers <list of TLS1.2 ciphers>
ssl-default-bind-options ssl-min-ver TLSv1.2 ssl-max-ver TLSv1.2
ssl-default-server-ciphersuites <list of TLS1.3 ciphersuites>
ssl-default-server-options ssl-min-ver TLSv1.3
defaults
mode http
frontend foo
bind *:443 ssl crt /path/to/cert.pem
default_backend bar
backend bar
server yourservername 192.168.1.1:443 ssl
对于 TLSv1.3,您需要使用 OpenSSL 1.1.1 或更高版本构建的 haproxy。
我将ssl-min-ver TLSv1.2 用于绑定,因为不推荐使用较低版本。 ssl-default-bind-options 中的 ssl-max-ver TLSv1.2 将限制所有前端的 TLS 最高为 1.2,除非另有声明,ssl-min-ver TLSv1.3 中的 ssl-default-server-options 将强制所有到后端服务器的连接使用 TLSv1.3,除非在配置中另有声明。当您有更多服务器时,这些默认设置是为了保存输入。这些选项可以在每个 bind 和每个 server 配置行上单独声明。