{"id":46,"date":"2018-08-24T13:52:07","date_gmt":"2018-08-24T12:52:07","guid":{"rendered":"http:\/\/www.xciv.org\/blog\/?p=46"},"modified":"2020-02-12T16:03:40","modified_gmt":"2020-02-12T16:03:40","slug":"letsencrypt-hell","status":"publish","type":"post","link":"https:\/\/www.xciv.org\/blog\/2018\/08\/24\/letsencrypt-hell\/","title":{"rendered":"letsencrypt hell"},"content":{"rendered":"<p>I simultaneously both love letsencrypt and also hate it.<\/p>\n<p>Maybe hate is the wrong word, the project&#8217;s goals are fantastic.<\/p>\n<p>What I hate is the official software &#8211; certbot.<\/p>\n<p>Firstly the way it installs is horrible, under some weird directory structure in your home directory, who in the world generally manages their software like this?\u00a0 What happened to \/usr\/local or \/opt?<\/p>\n<p>Then to actually using the software itself, the command line syntax is very clunky and hard to work out.\u00a0 The documentation is confusing.<\/p>\n<p>Finally, we come to wildcard certificates.<\/p>\n<p>certbot, by its very descriptive name, is a certificate robot, an automated tool for generating certificates.\u00a0 So what did they do for wildcard certificates?<\/p>\n<p>You have to use some clunky command line option to specify an alternative server and then you have to use a manual authenticatation technique using DNS records.\u00a0 It gets better, if you want to secure both &#8216;*.xciv.org&#8217; and &#8216;xciv.org&#8217; in one certificate, you get prompted for two different keys, that both sit on the same DNS record.\u00a0 Cue&#8230;<\/p>\n<p>1. Run script<br \/>\n2. Edit first DNS record key<br \/>\n3. Reload DNS server<br \/>\n4. Edit second DNS record key<br \/>\n5. Reload DNS server<\/p>\n<p>Every time you renew, you have to do all this again &#8211; yes, despite being the automated certificate script there is no way to automate renewals when using DNS authentication &#8211; which is mandatory for wildcard certificates.<\/p>\n<p>Now I can forgive the requirement for DNS authentication for wildcard certificates if that has been deemed the safest method, SSL is all about improving security, after all.<\/p>\n<p>What I can&#8217;t forgive is this god damn awful piece of software design that passes for the official letsencrypt tool.<\/p>\n<p><em>Addendum<\/em><\/p>\n<p>Since late 2018, after some recommendations, I have since switched to the <a href=\"https:\/\/dehydrated.io\/\">dehydrated<\/a> client and this is by far a better solution.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I simultaneously both love letsencrypt and also hate it. Maybe hate is the wrong word, the project&#8217;s goals are fantastic. What I hate is the official software &#8211; certbot. Firstly the way it installs is horrible, under some weird directory structure in your home directory, who in the world generally manages their software like this?\u00a0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"twitterCardType":"","cardImageID":0,"cardImage":"","cardTitle":"","cardDesc":"","cardImageAlt":"","cardPlayer":"","cardPlayerWidth":0,"cardPlayerHeight":0,"cardPlayerStream":"","cardPlayerCodec":"","footnotes":""},"categories":[19,18,11,3],"tags":[22,21,20,6],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-internet","category-security","category-software","category-technology","tag-internet","tag-security","tag-software","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":3,"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":67,"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions\/67"}],"wp:attachment":[{"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xciv.org\/blog\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}