@@ -67,20 +67,20 @@ frontend outbound_proxy
6767 tcp-request content reject if is_tls !has_sni
6868
6969 # ---------------------------------------------------------
70- # 3. TLS DNS resolution & destination override
70+ # 3. TLS allowlist check (before DNS to avoid resolving blocked domains)
71+ # ---------------------------------------------------------
72+ tcp-request content set-var(sess.reason) str(not-allowed) if is_tls has_sni !is_https_allowed
73+ tcp-request content reject if is_tls has_sni !is_https_allowed
74+
75+ # ---------------------------------------------------------
76+ # 4. TLS DNS resolution, destination override & accept
7177 # ---------------------------------------------------------
7278 tcp-request content do-resolve(sess.actual_ip,my_dns) var(sess.sni) if is_tls has_sni
7379 tcp-request content set-var(sess.reason) str(dns-failed) if is_tls has_sni ! { var(sess.actual_ip) -m found }
7480 tcp-request content reject if is_tls has_sni ! { var(sess.actual_ip) -m found }
7581 tcp-request content set-dst var(sess.actual_ip) if is_tls has_sni
76-
77- # ---------------------------------------------------------
78- # 4. TLS accept/reject
79- # ---------------------------------------------------------
80- tcp-request content set-var(sess.decision) str(${HAPROXY_DECISION_LABEL}) if is_tls has_sni is_https_allowed
81- tcp-request content accept if is_tls has_sni is_https_allowed
82- tcp-request content set-var(sess.reason) str(not-allowed) if is_tls has_sni !is_https_allowed
83- tcp-request content reject if is_tls has_sni !is_https_allowed
82+ tcp-request content set-var(sess.decision) str(${HAPROXY_DECISION_LABEL}) if is_tls has_sni
83+ tcp-request content accept if is_tls has_sni
8484
8585 # ---------------------------------------------------------
8686 # 5. Non-TLS DNS-routed → HTTP backend
0 commit comments