Hi there,
I am sure I am doing something horribly wrong, but I just cannot find out what. I am trying to disable X25519MLKEM768 key exchanges for the backend connections to reduce the overhead of the connection. As such I am running with the following configuration on haproxy docker images haproxytech/haproxy:debian-3.4.5 as well as haproxy:3.4.5:
global
ssl-default-server-curves secp384r1
ssl-default-server-options ssl-min-ver TLSv1.3 no-tls-tickets
defaults
mode http
log global
option httplog
option dontlognull
timeout client 1s
timeout connect 1s
timeout server 1s
frontend main
bind *:8080
default_backend app
frontend test
bind *:4040
http-request return status 200 content-type text/plain string OK\n
backend app
default-server ssl verify none no-sni-auto no-check-sni-auto curves secp384r1
server test1 127.0.0.1:4040
ssl-default-server-curves secp384r1 is used on purpose for demonstration purposes. Now when connecting via HTTP to port 8080 haproxy tries to make a SSL connection to port 4040. It obviously fails because the backend is not SSL aware but the important part is in the “Client Hello” TLS message that haproxy sends:
As you can see the key_share still uses X25519MLKEM768. No matter what I try, I cannot get haproxy to send a non pqc aware key exchange.
Any ideas what I am doing wrong?
Thanks,
Florian
