Imagine, you are the host of a domain and you receive a HTTPS request.
What are your possibilities ?
A) Drop the request ? Fallback to HTTP and get the user MITM
B) Self-signed certificate
C) A certificate trusted by a well known authority
D) MITM yourself with CloudFlare ? Put CloudFlare in front then CloudFlare will proxy the traffic in pure HTTP to GitHub.
Now talking about risks:
$ openssl s_client -servername blog.securem.eu -connect blog.securem.eu:443 | openssl x509 -noout -dates
notBefore=Apr 15 15:48:38 2018 GMT
notAfter=Jul 14 15:48:38 2018 GMT
https://letsencrypt.org/2015/11/09/why-90-days.htmlThe certificates are valid only for 90 days.
It looks like just inventing a problem. If you decided to give control of part of your domain to GitHub, yes they will be able to serve content on your behalf. That's normal, and logic.
On letsencrypt.org:
In Progress:
These large providers are currently rolling out support for Let’s Encrypt for custom domains.
You may or may not be able to enable support in their control panel,
or you might notice certificates have recently been issued for your domains hosted with these services.
Blogger
GitHub Pages
https://github.com/isaacs/github/issues/156#issuecomment-366...
https://community.letsencrypt.org/t/web-hosting-who-support-...and so on.
The principle of least astonishment should tell you that in 2018 HTTPS is becoming the default and hosting web pages with automated HTTPS should be expected.
What you should be astonished about is that it took Github so long to support HTTPS everywhere.
I also can't remember whether there's an API for legitimate owners to revoke a cert issued to someone else that's no longer OK. Let's Encrypt does have to be able to do that, but if there's no API it might be very manual.
You can do that by going through the usual challenge process in ACME and obtaining an authorization object for all names on a certificate. Any ACME account who is authorized to issue certificate for these names can also request revocation for existing certificates (even if owned by different ACME accounts).
(You're a bit screwed if the certificate you want to revoke also contains names from other users. This is a good argument for a "one name per certificate" or "only the names of one user per certificate" policy for such implementations.)
Of course, this is useless if the certificates were issued under a different CA, so your point is still valid. Prevention is better :) !
Does this mean that if GitHub did what CloudFlare does and batched multiple domains they serve into the same cert you wouldn't be able to revoke it?
I guess with a 90-day expiry it's not that big of a deal...
I didn't know about LE revocation mechanism at the time.