Thank you for support, we have fixed our issues. Ha. ----- Original Message -----
From: "Peter BUtler" <[email protected]> To: [email protected] Sent: Sunday, March 22, 2015 1:15:07 AM Subject: Re: HAProxy with multiple certificates, one of which being wild card, and the other being sub of that wildcard forgot to CC the mailing list. thanks Cryil. > Date: Fri, 20 Mar 2015 00:47:53 +0100 > From: [email protected] > To: [email protected]; [email protected] > Subject: Re: HAProxy with multiple certificates, one of which being wild > card, and the other being sub of that wildcard > > Hi Peter, > > Le 20/03/2015 00:32, Peter Butler a écrit : > > I logged this on stackoverflow > > (http://stackoverflow.com/questions/29133477/haproxy-with-multiple-certificates-one-of-which-being-wild-card-and-the-other), > > > > but HAProxy usage there is pretty low. > > > > THis is my first mailing list email in years, please let me know if I > > have broken any rules. > > > > > > I have HAProxy working pretty well, I have port 80 and 443 open, TCP > > over 443 over a internal proxy. HTTPS end to end. I am serving > > certificates: *.mycompany.com.au www.secure.mycompany.com.au > > SNI does not seem to be working, as when I go to > > secure.mycompany.com.au, I keep getting the www.secure.mycompany.com.au > > certificate (and weirdly *most* browsers do not throw a error). But when > > I go to mail.mycompany.com.au I get the *.mycompany.com.au certificate > > correctly. > > Indeed, keep in mind that a wildcard certificate works only for > subdomains, not sub-subdomains. this is fine, and as mentioned its working great for my other wild card certs, but the difference is they do not have a specific.sub- which-is-the-same-as-a-wildcard .mycompany.com.au (am I believe the blod part is my issue here. > > So www.secure.mycompany.com.au won't match the "*.mycompany.com.au" > wildcard certificate. As no certificate matches the hostname, the first > one loaded is applied. I guess that in your SSL directory, the > certificate file for "secure.mycompany.com.au" is listed first. I have tried this change already, by renaming them alphabetically. Didn't make any difference. > > You can read the RFC 2818, chapter "3.1. Server Identity" for more details : > http://tools.ietf.org/html/rfc2818#section-3.1 > I think my issue is here, from your link: E.g., *.a.com matches foo.a.com but not bar.foo.a.com In my case I have a cert for both: *.a.com.au and bar.foo.a.com.au > > > If I remove the www.secure.mycompany.com.au cert from the SSL directory, > > and I browse to secure.mycompany.com.au I get the correct certificate, > > but of course when I go to www.secure.mycompany.com.au, I get a error on > > the browser, as it tries to give me *.mycompany.com.au certificate. > > It tends to confirm this : the wildcard still doesn't match, and the > first certificate is applied (which in this case is by chance the > wildcard). I you insert a fake certificate before the wildcard, I'm sure > it will be this one that will match. > > > Can anyone see what I am doing wrong please. > > > > |By the way, I also have a *.abc.def.mycompany.com.au and > > *.def.mycompany.com.au in this same config (removed from below, but in same > > syntax). and they are working perfect.| > > > > || > > > > |haproxy -version > > HA-Proxy version 1.5.8 2014/10/31 > > Copyright 2000-2014 Willy Tarreau <[email protected]> > > > > > > > > > > ##################################################################################| > > > > > > |##################################################################################| > > > > > > |################################################################################## > > > > global > > daemon > > user haproxy > > group haproxy > > log /dev/log local0 info > > log /dev/log local0 notice > > ulimit-n 20000 > > pidfile /var/run/haproxy.pid > > tune.ssl.default-dh-param 2048 > > > > ################################################################################## > > > > > > ## Port80 is open only to forward all requests to port 443. > > frontend unsecure 123.123.123.155:80 #Prod > > bind 192.168.14.155:80 #Prod > > mode http > > redirect scheme https code 301 if !{ ssl_fc } > > > > ################################################################################## > > > > > > ##Listen on 443, and forward to internal proxy on 88. Needed for SSL end to > > end. > > listen ssl-proxy > > ##Only accept mycompany host headers > > http-request deny if !{ hdr_end(Host) -i mycompany.com.au } !{ > > hdr_end(Host) -i www.secure.mycompany.com.au } > > > > # Get Certificates from SSL directory. > > bind 123.123.123.155:443 ssl crt /etc/haproxy/ssl npn http/1.1 ciphers > > ECDHE-RSA-AES256-SHA:RC4-SHA:!RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM no-sslv3 > > bind 192.168.14.155:443 ssl crt /etc/haproxy/ssl npn http/1.1 ciphers > > ECDHE-RSA-AES256-SHA:RC4-SHA:!RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM no-sslv3 > > > > mode tcp > > server http 127.0.0.1:88 send-proxy > > > > ################################################################################## > > > > > > frontend internal_proxy > > mode http > > bind 127.0.0.1:88 accept-proxy name accept-sslproxy > > bind-process 1 > > > > acl is_secure_mycompany_com_au hdr_end(host) -i www.secure.mycompany.com.au > > acl is_secure_mycompany_com_au hdr_end(host) -i secure.mycompany.com.au > > use_backend https_secure_mycompany_com_au if is_secure_mycompany_com_au > > > > acl is_mail_mycompany_com_au hdr_end(host) -i mail.mycompany.com.au > > use_backend https_mail_mycompany_com_au if is_mail_mycompany_com_au > > > > default_backend nomatch > > > > ################################################################################## > > > > backend https_secure_mycompany_com_au > > mode http > > option tcp-check > > server web-01 192.168.14.50:443 check ssl verify none > > > > backend https_mail_mycompany_com_au > > mode http > > option tcp-check > > server web-02 192.168.14.51:443 check ssl verify none > > > > backend nomatch > > mode http > > errorfile 503 /etc/haproxy/errors/503.http| > > > > || > > > > |##################################################################################| > > > > > > |##################################################################################| > > > > > > |##################################################################################| > > > > > > || > > > > | > > > > > > By the way, on the backend I just redirect all > > www.secure.mycompany.com.au to secure.mycompany.com.au (it was a old > > marketing mistake). But I still need it there for now for history > > > > > > | > > > > > -- > Cyril Bonté >

