I just had a user tell me they couldn’t connect to my site, because my certificate was bad, but that wasn’t the problem at allâ¦
[ATTACH=JSON]{“alt”:“Click image for larger version Name: bbbh-cert-problem.jpg Views: 1 Size: 28.0 KB ID: 297130”,“data-align”:“center”,“data-attachmentid”:“297130”,“data-size”:“custom”,“height”:“600”,“title”:“bbbh-cert-problem.jpg”,“width”:“337”}[/ATTACH]
I knew something was off because the site was working for me, and SSL Labs rates the cert as A+.
After investigating it, I’m pretty sure what’s happening is that the person’s network admin (or ISP) has a “transparent forward proxy” set up. Transparent forward proxies are supposed to be invisible to the user (hence “transparent”), but they let the network owner see what’s being transmitted over their network (more than just the domain name that’s transmitted in clear text thanks to SNI). Basically they’re content filters.
I have HSTS (HTTP Strict Transport Security) set up on my sites, and when a transparent forward proxy encounters a site with HSTS what they’re doing fails and when they try to give a faked cert back to the user it results in a message like the one above. The faked certificate is because, in a corporate environment, when corporation owns/manages the devices on the network they can set up the device so that it will accept the faked certificate. But when a user brings their own device onto the network that hasn’t been configured to accept the faked cert, you’ll get an error like the one above.
So if you care about the privacy of your users, you should absolutely set up HSTS. Otherwise they could get fired, etc. for viewing your site. And if it’s a government who’s set up the transparent forward proxy, they could go to jail or get killed for viewing your site.
[There’s still the SNI problem, but as I mentioned the other day, ESNI looks like it will eventually fix that problem.]