{"id":27352,"date":"2017-02-14T16:02:33","date_gmt":"2017-02-14T14:02:33","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27352"},"modified":"2017-05-31T08:50:08","modified_gmt":"2017-05-31T06:50:08","slug":"fixing-outdated-lets-encrypt-zope-interface-error","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/14\/fixing-outdated-lets-encrypt-zope-interface-error\/","title":{"rendered":"Fixing outdated Let&#8217;s Encrypt (zope.interface error)"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>I&#8217;ve <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/18\/lets-encrypt-is-not-in-beta-anymore\/\">started using Let&#8217;s Encrypt<\/a> for the SSL certificates a while back. \u00a0I <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/06\/27\/lets-encrypt-on-centos-7-and-amazon-ami\/\">installed it<\/a> on all the web servers, irrelevant of the need for SSL, just to have it there, when I need it (thanks to <a href=\"https:\/\/galaxy.ansible.com\/geerlingguy\/letsencrypt\/\">this Ansible role<\/a>). \u00a0One of those old web servers needed an SSL certificate recently, so I thought it&#8217;d be no problem to generate one.<\/p>\n<p>But I was wrong. The <em>letsencrypt-auto<\/em> tool got outdated and was failing to execute, throwing some Python exception about missing <em>zope.interface<\/em> module. \u00a0A quick Google search brought <a href=\"http:\/\/stackoverflow.com\/questions\/38170100\/letsencrypt-importerror-no-module-named-interface-on-amazon-linux-while-renewin\">this StackOverflow discussion<\/a>, with the exact issue I was having.<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\nTraceback (most recent call last):\r\n  File &quot;\/root\/.local\/share\/letsencrypt\/bin\/letsencrypt&quot;, line 7, in &lt;module&gt;\r\n    from certbot.main import main\r\n  File &quot;\/root\/.local\/share\/letsencrypt\/local\/lib\/python2.7\/dist-packages\/certbot\/main.py&quot;, line 12, in &lt;module&gt;\r\n    import zope.component\r\n  File &quot;\/root\/.local\/share\/letsencrypt\/local\/lib\/python2.7\/dist-packages\/zope\/component\/__init__.py&quot;, line 16, in &lt;module&gt;\r\n    from zope.interface import Interface\r\nImportError: No module named interface\r\n<\/pre>\n<p>However, the solution didn&#8217;t fix the problem for me:<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\nunset PYTHON_INSTALL_LAYOUT\r\n\/opt\/letsencrypt\/letsencrypt-auto -v\r\n<\/pre>\n<p>Even pulling the updated version from <a href=\"https:\/\/github.com\/certbot\/certbot\">the GitHub repository<\/a> didn&#8217;t solve it.<\/p>\n<p>After poking around for a while more, I found <a href=\"https:\/\/github.com\/certbot\/certbot\/issues\/2872\">this bug report<\/a> from the last year, which solved my problem.<\/p>\n<blockquote><p>I recommend:<\/p>\n<ol>\n<li>Running <strong>rm -rf \/root\/.local\/share\/letsencrypt<\/strong>. This removes your installation of letsencrypt, but keeps all configuration files, certificates, logs, etc.<\/li>\n<li>Make sure you have an up to date copy of letsencrypt-auto. It can be found here.<\/li>\n<li>Run letsencrypt-auto again.<\/li>\n<\/ol>\n<p>If you get the same behavior, you can try installing zope.interface manually by running:<\/p>\n<p><code>\/root\/.local\/share\/letsencrypt\/bin\/pip install zope.interface<\/code><\/p><\/blockquote>\n<p>Hopefully, next time I&#8217;ll remember to search my blog&#8217;s archives &#8230;<\/p>\n<p><strong>Update (May 31, 2017)<\/strong>: check out my brother&#8217;s <a href=\"http:\/\/alex.mamchenkov.net\/2017\/05\/30\/fixing-outdated-encrypt\/\">follow up post<\/a> with even better way of fixing this issue.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I&#8217;ve started using Let&#8217;s Encrypt for the SSL certificates a while back. \u00a0I installed it on all the web servers, irrelevant of the need for SSL, just to have it there, when I need it (thanks to this Ansible role). \u00a0One of those old web servers needed an SSL certificate recently, so I thought it&#8217;d &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/14\/fixing-outdated-lets-encrypt-zope-interface-error\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Fixing outdated Let&#8217;s Encrypt (zope.interface error)<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Fixing outdated Let's Encrypt (zope.interface error) #SysAdmin #SSL #security #LetsEncrypt","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,133,62,1334],"tags":[3427,200,3413,2289],"keyring_services":[],"class_list":["post-27352","post","type-post","status-publish","format-standard","hentry","category-general","category-sysadmin","category-technology","category-web-work","tag-lets-encrypt","tag-security","tag-ssl","tag-web-hosting"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28305,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/01\/09\/lets-encrypt-is-leading-top-ssl-issuers\/","url_meta":{"origin":27352,"position":0},"title":"Let&#8217;s Encrypt is leading Top SSL Issuers","author":"Leonid Mamchenkov","date":"January 9, 2018","format":false,"excerpt":"Netrack reports some statistics for the Top SSL Issuers, and it's nice to see Let's Encrypt leading the race with a significant advantage over the rest. Well done, ladies and gentlemen!","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/01\/ssl-issuers-graph-500x281.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26208,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/06\/27\/lets-encrypt-on-centos-7-and-amazon-ami\/","url_meta":{"origin":27352,"position":1},"title":"Let&#8217;s Encrypt on CentOS 7 and Amazon AMI","author":"Leonid Mamchenkov","date":"June 27, 2016","format":false,"excerpt":"The last few weeks were super busy at work, so I accidentally let a few SSL certificates expire. \u00a0Renewing them is always annoying and time consuming, so I was pushing it until the last minute, and then some. Instead of going the usual way for the renewal, I decided to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26033,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/18\/lets-encrypt-is-not-in-beta-anymore\/","url_meta":{"origin":27352,"position":2},"title":"Let&#8217;s Encrypt is not in Beta anymore","author":"Leonid Mamchenkov","date":"April 18, 2016","format":false,"excerpt":"Let's Encrypt - anew Certificate Authority, which is free, open, and automated - announced that it's leaving beta. \u00a0Just look at how many SSL certificates they've issued, and at what rate! I've first written about Let's Encrypt back in November 2014. \u00a0It hasn't been that long ago, but boy, what\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"Issuance-April-10-2016","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/04\/Issuance-April-10-2016-500x302.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26999,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/11\/28\/s3-static-site-with-ssl\/","url_meta":{"origin":27352,"position":3},"title":"S3 static site with SSL","author":"Leonid Mamchenkov","date":"November 28, 2016","format":false,"excerpt":"\"S3 static site with SSL and automatic deploys using Travis\" is a goldmine of all those simple technologies tied into a single knot for an impressive result. \u00a0It has a bit of everything: Jekyll - simple, blog-aware, static sites engine, for managing content. GitHub - for version control of the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"s3-static-site","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/11\/s3-static-site-479x500.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27287,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/01\/dissecting-an-ssl-certificate\/","url_meta":{"origin":27352,"position":4},"title":"Dissecting an SSL certificate","author":"Leonid Mamchenkov","date":"February 1, 2017","format":false,"excerpt":"Julia Evans does it again. \u00a0If you ever wanted to understand SSL certificates, her post \"Dissecting an SSL certificate\" is for you. \u00a0 This part made me smile: Picking the right settings for your SSL certificates and SSL configuration on your webserver is confusing. As far as I understand it\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29115,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/19\/well-known-uris\/","url_meta":{"origin":27352,"position":5},"title":"Well-Known URIs","author":"Leonid Mamchenkov","date":"December 19, 2018","format":false,"excerpt":"Back when Let's Encrypt started giving out free SSL certificates, one bit that visible all over the web was the \"well-known\" directory.\u00a0 I never thought much about it - it's just a name after all. Turns out, there is actually an RFC 5785 that defines a standard for the well-known\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=27352"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27352\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27352"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}