Note: I am terminating the TLS connection at HA Proxy. So the information should be accessible to HA Proxy.
Before I started using HA Proxy I could do this easily in Apache, by putting the SSLVerifyClient inside a Location block.
Is this possible with HA Proxy? If so, how can it be done?
I know that it is possible with Apache, it’s achieved by triggering a TLS renegotiation. With TLSv1.3 this changes completely, as renegotiation is no longer supported. Instead TLSv1.3 uses CertificateRequest messages to request the client certificate after the handshake.
Neither is support in haproxy and I doubt Apache supports it in TLSv1.3.
Do you have any idea of how hard it would be to add it?
Depending on how much work it is, we might consider implementing it ourselves, and adding a pull request for it.
I’m not sure. I guess it could be quite complex, given how the connection, mux and transaction layer have been separated now, especially with HTTP/2.
Definitely discuss this on the mailing list before investing any actual development time on your end. The developers on the mailing list will have a better idea of how feasible it is.