-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move to LetsEncrypt (2017 edition) #145
Comments
I was actually thinking it was March so I'm sure May should be ok ;-) |
Here's the conversation @Firefishy and I had before Christmas:
|
Expires: Tue, 21 Feb 2017 00:49:58 UTC: *.osmfoundation.org osmfoundation.org openstreetmap.org blog.openstreetmap.org osm.org blog.osm.org blog.osmfoundation.org switch2osm.org stateofthemap.com opengeodata.org stateofthemap.org thinkup.openstreetmap.org thinkup.osm.org otrs.openstreetmap.org otrs.osm.org foundation.openstreetmap.org foundation.osm.org *.stateofthemap.com *.stateofthemap.org *.switch2osm.org switch2osm.com *.switch2osm.com openstreetmaps.org blog.openstreetmaps.org openstreetmap.com blog.openstreetmap.com *.opengeodata.org openstreetmap.net blog.openstreetmap.net |
Yes that's the osmfoundation one and I guess it's that date I had in mind. |
So to summarise the design I had been working on was basically that each machine would run certbot and get it's own certificate - for apache at least the The advantage of that design is that there's no need for machines to communicate what certificates they need to a central point, or to move the keys and certificates back to the machine that needs them. There is an issue where multiple machines serve the same name however as letsencrypt might hit any of them for the validation token to whatever storage that is on needs to be visible to them all, which we don't currently have for the main web servers. The other design (and what I use at home) is to have all machines redirect |
Would the "Chef Way" of distributing keys and certificates be via Chef's encrypted data bags? If so, is there any benefit to trying to use that mechanism to distribute them rather than a shared filesystem? I agree that having only a central machine with the (plaintext) LetsEncrypt client tokens makes a lot of sense from the point of view of security, and all other things being equal, would prefer that. |
Not really because a recipe can only read from a data bag - writing to it happens through the server API instead. I guess you could have a script on the certificate master node that used knife to upload to a data bag after a certificate was obtained which might work. Whether the data bag is encrypted is not really relevant, though it might be worth doing in this case in that it would control which nodes could retrieve the data. |
Yes, that was what I was thinking: have the central |
I have some sort of plan in mind now and am working on this, but one things we will need to decide is which machine we're going to use as the central host that generates and distributes the certificates... |
While I'd love to say "openshift", that's not ready yet. In the meantime, does it make sense to put it on ironbelly / grisu as a "central service"? |
I agree that is kind of the obvious place, but it's also probably a bit more exposed (what with acting as an NFS server and things) then I would really like. It may well be the best choice for now at least though. |
"Not to disturb the waters" (<- standard disclaimer), just mentioning that we have been suffering the startcom/wosign fuckup and had to move over to letsencrypt. My problem was that I had to make it automagic, but many servers doesn't use normal http (like email or xmpp) or tcp80 not available for the acme challenge, and a plenty of machines doesn't even have a public IP, so http-01-auth was out of question. In the end I use certbot in manual mode with hooks, using dns-01 challenge by turning the knobs on powerdns using really simple scripts. The central keymanager host generates all the new keys and grab the certs, and pour them out using saltstack (which is the better variant on chef :-P) [or in some cases plain https which is alised by the IP to the specific certs of the requestor since some machines are behind various hideous stuffs like nats and fascist firewalls]. In your case this may not be interesting since you all have webservers and public IPs, but who knows what may help. At least certbot devs are nice fellas and quite responsive. |
DNS challenges aren't going to work for us because we don't have real time control of our DNS records. Also the certbot in Ubuntu 16.04 is quite old (like it's still called letsencrypt) and doesn't have hook support. |
Well it's python so could be even dropped into a user dir. I use the latest deb from debian/sid under debian/stable (apt pinned) since it doesn't pull in horribly much deps. |
Out first two services (munin and piwik) are live with letsencrypt certificates. Now the real work of converting everything can start:
|
Rollout has now been completed to all existing sites (and a few new ones). |
No action needed, just maybe you'll need such knowledge for future issues: |
The
*.openstreetmap.org
certificate is due to expire on Tuesday, 2 May 2017. By this time, it seems that LetsEncrypt is supported by mainstream Java, and I'm not aware of any other platforms lacking support for it. I think the consensus is that we should move to it.@tomhughes has already done some work prototyping this, and apparently @Firefishy has some thoughts on it too. Is there enough time to get this written, tested and rolled out with plenty of safety margin before the May deadline?
The text was updated successfully, but these errors were encountered: