The Meek wiki page has a section on CloudFlare as a possible CDN to use, but seems to have been written before CloudFlare rolled out their Universal SSL free tier.
Would it be possible to have a meek-cloudflare using this Universal SSL thing?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Please give it a try. I think it works. There are some sample Wget commands on the wiki page.
If you're a CloudFlare customer you can easily test it yourself. Set up a new domain with https://meek.bamsoftware.com/ as your origin server. Then try to Wget a different CloudFlare home page with your domain name in the Host header.
I think CloudFlare is a good deployment target. But first we need to find a way to pay for it. It's also a non-negligible amount of maintenance work, each additional backend we deploy. If CloudFlare offers a better value (cheaper or better performance than meek-amazon, for example) then it would make sense to switch to it.
Recent changes to how CloudFlare validates TLS connections means that this will no longer work.
Host header spoofing does not work for technical reasons on CloudFlare
[ Disclosure: I work for CloudFlare ]
Thanks for the information. We hadn't yet tried to get CloudFlare working, and knowing this will save some frustration.
If there is a way to restore this characteristic of the infrastructure, consistent with CloudFlare's technical and business constraints, a lot of censored users will appreciate it.
I did some experiments with CloudFlare, and here are the results:
When using HTTP/1.1, CloudFlare requires SNI hostname to match the value of Host header. If this is violated, HTTP error 403 is returned.
However, when using HTTP/2, the check is less strict. HTTP/2 has a feature where a single connection can be used with multiple host names as long as the TLS certificate presented by the server is valid for all those host names. When using CloudFlare Free SSL, a single certificate is generated for multiple domains, and it is possible to utilize domain fronting as long as both the front and the back domain use the same certificate.
I don't know how they choose which domains share a certificate. Also, these certificates seem to be reissued much more frequently than their validity period might suggest. As a result, domain fronting with CloudFlare is possible, but not very convenient.
Anyway, I registered an address https://meek-reflect.cf/ which you can use for testing. Unfortunately, I don't know any command-line tools that can send HTTP/2 requests, and constructing HTTP/2 requests by hand is not trivial. Still, you can use this command to try the voodoo magic of domain fronting for yourself:
I think the summary of the situation is that Cloudflare doesn't support domain fronting, but these days supports draft ESNI, and that's probably the promising path to pursue. There's some discussion of ESNI in #28168 (moved).
Trac: Status: new to closed Resolution: N/Ato not a bug Reviewer: N/AtoN/A