在代理中将 TLS 1.3 降级为 1.2

TLS 1.3 to 1.2 downgrading in a proxy

我正在尝试设置允许将 TLS 1.3 降级到 TLS 1.2 的 HTTPS 代理。

我的实际问题是:

我需要浏览器能够通过中间盒连接到网络服务器。

我在考虑 HAProxy,但我真的是个菜鸟,我不确定在哪里检查此功能以及如何实现此功能。

我应该如何设置 HAProxy?

在此先感谢您的帮助。

如果我没理解错的话。浏览器使用 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 配置行上单独声明。