Hello Willy and William,

Thank you for your explanations and suggestions.

I've checked the ciphers supported by aws-lc and with help of Mozilla SSL Configuration Generator I have now a reasonable configuration for haproxy. As it may be of some interest, I post it here. I'm currently running haproxy 3.1.3. There was no problem to compile haproxy+aws-lc on Debian 12 and Debian 11. However on Debian 11, one have to enable backports to get an up-to-date golang package (and cmake if you want). The dependencies for aws-lc compilation are cmake/golang/libunwind-dev (other than build-essentials).
The compilation process is exactly as described in haproxy INSTALL file.

haproxy has been configured/built with something like this (distribution INSTALL file was helpful here):

make -j $(nproc) ARCH_FLAGS=-s TARGET=linux-glibc CPU_CFLAGS=-march=native USE_OPENSSL_AWSLC=1 SSL_INC=/opt/aws-lc/include SSL_LIB=/opt/aws-lc/lib USE_QUIC=1 [...] all

I can't see LDFLAGS in INSTALL examples. In previous haproxy versions with quictls it was set to : LDFLAGS="-L/opt/quictls/lib -Wl,-rpath,/opt/quictls/lib". I suppose it's no longer necessary or it's not necessary with aws-lc.

haproxy ciphers setup :

|# generated 2025-02-12, Mozilla Guideline v5.7, HAProxy 3.0, OpenSSL 3.4.0, intermediate config, no HSTS # https://ssl-config.mozilla.org/#server=haproxy&version=3.0&config=intermediate&openssl=3.4.0&hsts=false&guideline=5.7 global # intermediate configuration ssl-default-bind-curves X25519:prime256v1:secp384r1 ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305 ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-bind-options prefer-client-ciphers ssl-min-ver TLSv1.2 no-tls-tickets ssl-default-server-curves X25519:prime256v1:secp384r1 ssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305 ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-server-options ssl-min-ver TLSv1.2 no-tls-tickets |

Please comment if you have some suggestions or enhancements to this config.

--
Best regards,
Artur

Reply via email to