5 ms·
I work on Let's Encrypt and Certbot and I'll offer the following summary for people who aren't familiar with the history of this. TLS-SNI-01 is one of several
by schoen 8y ago
I work on Let's Encrypt and Certbot and I'll offer the following summary for people who aren't familiar with the history of this.
TLS-SNI-01 is one of several validation methods for getting a Let's Encrypt certificate. It was originally the only method that worked on port 443 (other methods use port 80 or ask you to create DNS records).
In January 2018, Frans Rosén (the author of the article linked here) discovered that, on some shared hosting environments, one shared hosting customer could pass TLS-SNI-01 challenges for a different customer's domain. This problem only affects users of particular shared hosting services, but there was no apparent way that Let's Encrypt could get every shared hosting provider to fix this. (Let's Encrypt already knew about a related problem in a proposed-but-never-implemented validation method called HTTPS-01, but had missed the issue that Rosén discovered.)
Let's Encrypt then temporarily disabled TLS-SNI-01 entirely, and later allowed it for certificate renewals but not for initial issuance, as well as for specific hosting providers that had specifically confirmed that they were not affected by the vulnerability.
At the same time, the eventual deprecation of TLS-SNI-01 was announced.
In preparation for the deprecation, the Certbot client improved its support for HTTP-01 (the challenge that uses port 80), and, in recent releases, switched to preferring HTTP-01 over TLS-SNI-01 even if the certificate authority offers both. (Certbot originally preferred TLS-SNI-01 over HTTP-01.) This change means that recent renewals for people who have moderately up-to-date versions of Certbot will default to HTTP-01 and simulate what will happen after TLS-SNI-01 isn't available at all.
Recently, Let's Encrypt has also been e-mailing people who performed recent renewals using TLS-SNI-01 and warning them that this option is going to be eliminated permanently in March.
There is a newer validation method that works on port 443 called TLS-ALPN-01; this is supported by Let's Encrypt but not in Certbot. Some other clients do support it, although they may require that you shut down your web server temporarily.
https://community.letsencrypt.org/t/which-client-support-tls-alpn-challenge/75859/2 https://community.letsencrypt.org/t/which-client-support-tls...
Some people have been frustrated by this change because they have blocked port 80 entirely. Let's Encrypt has published a document noting that this isn't a good idea; in particular, it doesn't protect against active SSL stripping attacks.
https://letsencrypt.org/docs/allow-port-80/ https://letsencrypt.org/docs/allow-port-80/
- wnevets 8y ago>Recently, Let's Encrypt has also been e-mailing people who performed recent renewals using TLS-SNI-01 and warning them that this option is going to be eliminated permanently in March. So this is what that email was about.
- jbigelow76 8y agoI work on Let's Encrypt and Certbot... Nothing related to the article or your response but I wanted to take a moment to say that as someone who is just getting started with learning Linux administration Certbot and Let's Encrypt made it stunningly easy to get SSL enabled for my site, your work and dedication is immensely appreciated!
- schoen 8y agoThanks, I've passed that along to the whole Certbot team!
- thaumaturgy 8y agoI want to second this. With only a little effort initially, I've been able to have fully automated SSL-by-default for all of my "backyard hosting" customers, at no extra cost for them or for me. You folks are wonderful.
- EvilMonkeyMat 8y agoI'm adding my voice: Let's Encrypt and Certbot have made my life much easier. We manage somewhere around 100 websites where I work, and we were probably no more than 4 out 5 to monitor certificates, and renew them actively. It's a million times easier now. Thanks a lot, and keep up your fantastic work!
- kuzimoto 8y agoI would also like to give thanks! I just use in on my home-hosted site for personal use, but it was such a breeze to set up. I could have used a self-generated cert but I feel this is much safer, and saves me from having to install the cert on every device.