[tor-bugs] #18655 [meek]: Make meek-server easy to use with Let's Encrypt

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Mar 26 22:15:27 UTC 2016


#18655: Make meek-server easy to use with Let's Encrypt
-------------------------+---------------------
 Reporter:  dcf          |          Owner:  dcf
     Type:  enhancement  |         Status:  new
 Priority:  Medium       |      Milestone:
Component:  meek         |        Version:
 Severity:  Normal       |     Resolution:
 Keywords:               |  Actual Points:
Parent ID:               |         Points:
 Reviewer:               |        Sponsor:
-------------------------+---------------------

Comment (by dcf):

 I posted a request for ideas to tor-dev.

 https://lists.torproject.org/pipermail/tor-dev/2016-March/010645.html
 > I'm looking for ideas of good ways to handle TLS certificates and their
 renewal for meek bridges. I want to use Let's Encrypt for this process,
 and I hope that someone who knows Let's Encrypt well can contribute some
 ideas.
 >
 > All three of the meek bridges use HTTPS to receive connections from the
 CDN, so they need TLS certificates. For example, when you use meek-azure,
 your traffic is forwarded to the bridge at https://meek.bamsoftware.com/.
 How it works now is I do the usual domain validation procedure with a CA,
 receive an email to show that I control the domain, install the cert and
 key, and then run the server like this:
 > {{{
 > meek-server --cert /etc/meek/cert.pem --key /etc/meek/key.pem
 > }}}
 >
 > When I used Let's Encrypt in the past, using the `--webroot` option, it
 wanted to write a file to the URL path `/.well-known/acme-
 challenge/{token}`. That won't work for meek-server as it exists today,
 because meek-server never serves files from the filesystem. But it could.
 Perhaps we could add an option like `--acme-webroot` that would allow
 serving files from a single whitelisted directory.
 >
 > I notice that there are other ways of proving domain ownership (HTTP,
 TLS SNI, DNS). Maybe we could use one of those?
 > https://ietf-wg-acme.github.io/acme/#identifier-validation-challenges
 >
 > I also note that there are third-party plugins:
 > https://github.com/letsencrypt/letsencrypt/wiki/Plugins
 > Maybe there could be a plugin for meek-server (ideally not requiring new
 complicated code in meek-server itself).
 >
 > Currently you have to restart meek-server in order to make it notice a
 changed certificate and key file. It would be better if that were not
 necessary--maybe we could periodically stat the files, and re-load them if
 they have changed?
 >
 > This is going to be an issue for Snowflake as well, because we will want
 to use WebSocket over TLS for the server component.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/18655#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list