Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Client cert validation with HAProxy

    Scheduled Pinned Locked Moved Cache/Proxy
    1 Posts 1 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dberg
      last edited by

      I have a functioning reverse proxy configured with HAProxy and Letsencrypt certs via the ACME package.  My configuration involves 2 HTTP backends pointing to internally hosted web services (emby & subsonic).  This is tied to a frontend listening on port 443 with SSL Offloading and ACL to match the host subdomain the appropriate backend.  I also have a separate backend and frontend for SSL redirect.  My haproxy.cfg is attached.

      I'm able to hit https://music.domain-name.us and https://media.domain-name.us and access my hosted services authenticated with my Letsencrypt cert without any issue.  Where I'm running into trouble is configuring certificate validation with HAproxy to restrict access to clients that don't have the cert installed locally.

      I exported the p12 for the Letsencrypt cert from the pfSense cert manager and installed it on my Windows10 machine under the Local Machine\Personal cert store.  Under my HAProxy HTTPS frontend, I selected the Letsencrypt CA under "Client verification CA certificates".  After installing the cert+key locally and selecting the CA for cert validation, I'm not able to hit either of my subdomains.  Chrome is returning a response of "ERR_BAD_SSL_CLIENT_AUTH_CERT"

      Unfortunately I can't find any usable log data for HAProxy to tell me where the blockage is, and documentation for client cert validation through HAProxy is very sparse.  Could there be additional rules I need to add in the ACL to validate the cert? Do I have to use a different cert for client validation than the Letsencrypt cert?  The cert I installed on Windows10 is the same cert configured in the frontend under "SSL Offloading"? Any thoughts or recommendations would be greatly appreciated.
      haproxy.txt

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.