{"id":19725,"date":"2019-02-28T18:57:56","date_gmt":"2019-02-28T17:57:56","guid":{"rendered":"https:\/\/support.protonet.info\/de\/forum\/letsencrypt-aktualisieren\/"},"modified":"2019-06-10T11:50:13","modified_gmt":"2019-06-10T09:50:13","slug":"letsencrypt-aktualisieren","status":"publish","type":"post","link":"https:\/\/support.protonet.info\/de\/forum\/letsencrypt-aktualisieren\/","title":{"rendered":"LetsEncrypt aktualisieren"},"content":{"rendered":"<div class=\"wysiwyg\"><p style=\"margin-top: 0px; margin-bottom: 1rem; color: #212529; font-family: Raleway, sans-serif; font-size: 14px;\"><strong>Ihr habt bestimmt eine Mail bekommen, dass der LetsEncrypt Client aktualisiert werden muss, wenn ihr LetsEncrypt mit eurer eigenen Domain nutzt. Dann weil noch ein alter Client genutzt wird, der TLS-SNI-01 verwendet. Dies m\u00f6chte LetsEncrypt aufgrund von Sicherheitsvorkehrungen abschalten.<\/strong><\/p>\n<pre>Weitere Infos hier auf Englisch: <a href=\"https:\/\/community.letsencrypt.org\/t\/action-required-lets-encrypt-certificate-renewals\/83163\" class=\"broken_link\">https:\/\/community.letsencrypt.org\/t\/action-required-lets-encrypt-certificate-renewals\/83163<\/a><\/pre>\n<p>Den Client auf der Box zu aktualisieren geht recht einfach, da nur die Versionsnummer im Script angepasst werden muss. Zumindest um auf die Schnelle auf der sicheren Seite zu sein. Nach einem Neustart muss diese \u00c4nderung wieder vorgenommen werden!<\/p>\n<blockquote><p><span style=\"color: #ff6600;\">Wichtig:\u00a0Neben Port 443 muss auch Port 80 auf die Protonetbox weitergeleitet werden.<\/span><br \/>\n<span style=\"color: #ff6600;\">Dies ist in den neueren Versionen von LetsEncrypt notwendig und ist eine Vorgabe von LetsEncrypt!<\/span><\/p><\/blockquote>\n<p style=\"margin-top: 0px; margin-bottom: 1rem; color: #212529; font-family: Raleway, sans-serif; font-size: 14px;\">Wir loggen uns also per SSH auf unsere Protonetbox und \u00f6ffnen mit dem Editor unserer Wahl die Datei \u201e\/usr\/local\/bin\/letsencrypt\u201c<\/p>\n<p style=\"margin-top: 0px; margin-bottom: 1rem; color: #212529; font-family: Raleway, sans-serif; font-size: 14px;\">Das rot markierte ist der originale Eintrag. Diesen \u00e4ndern wir so, dass es wie beim gr\u00fcn markierten aussieht. Oder kommentieren den roten Eintrag aus und f\u00fcgen den gr\u00fcnen Eintrag hinzu. Jeder, wie er m\u00f6chte. Zus\u00e4tzlich noch den gr\u00fcnen Eintrag beachten, wo letsencrypt schlie\u00dflich ausgef\u00fchrt wird!<\/p>\n<blockquote>\n<pre>#!\/bin\/sh\nCUSTOM_DOMAIN=$(cat \/etc\/protonet\/nodenames\/custom | xargs) # xargs trims white space\nif [ ! \"$CUSTOM_DOMAIN\" ];then\n\u00a0 echo \"--- Error. No custom domain set. Please create \/etc\/protonet\/nodenames\/custom, insert your domain and symlink \/etc\/protonet\/nodename to it.\"\n\u00a0 exit 1;\nfi\necho \"--- Custom domain $CUSTOM_DOMAIN correctly set at \/etc\/protonet\/nodenames\/custom\"\n# This only works with IPv4 at the moment\nRESOLVE_IP=$(dig +short $CUSTOM_DOMAIN A | tail -n 1)\nMY_IP=$(curl http:\/\/ident.me\/)\nif [ $RESOLVE_IP = $MY_IP ]; then\n\u00a0 echo \"--- Box is reachable from the outside via $CUSTOM_DOMAIN\"\nelse\n\u00a0 echo \"--- Error. Box is not reachable via $CUSTOM_DOMAIN. Please set DNS records or wait till nameservers have received the update.\"\n\u00a0 exit 1;\nfi\n# using the Email of the first user with the role 'admin'\nEMAIL=$(cd \/home\/protonet\/dashboard\/current &amp;&amp; RAILS_ENV=production bundle exec rails runner 'puts User.where(role: \"admin\").first.email' | tail -n 1)\necho \"--- Using $EMAIL for letsencrypt registration.\"\necho \"--- OK! Grabbing new SSL certificate via letsencrypt\";\nsudo mkdir -p \/etc\/protonet\/letsencrypt\nsudo ln -s \/etc\/protonet\/letsencrypt \/etc\/letsencrypt\nsudo rm -rf \/tmp\/letsencrypt\ngit clone https:\/\/github.com\/certbot\/certbot.git \/tmp\/letsencrypt\ncd \/tmp\/letsencrypt\n<span style=\"background-color: #ff0000;\"># pinned to certbot version 0.6.0\n# git checkout v0.6.0<\/span>\n<span style=\"background-color: #00ff00;\"># pinned to certbot version 0.31.0\ngit checkout v0.31.0<\/span>\n# we don't want apt-get to run, we have everything needed for letsencrypt v0.6 to run\nsed -i 's\/apt-get update\/echo\/g' .\/letsencrypt-auto\nsed -i 's\/apt-get install\/echo\/g' .\/letsencrypt-auto\nsudo sv stop \/home\/protonet\/dashboard\/shared\/services\/enabled\/nginx\nsudo service haproxy stop\n.\/letsencrypt-auto certonly --standalone -d $CUSTOM_DOMAIN --email $EMAIL --agree-tos --force-renew <span style=\"background-color: #00ff00;\">--no-self-upgrade<\/span>\nrc=$?\nif [ $rc -eq 0 ]; then\n\u00a0 echo \"--- Successfully generated certificate.\";\nelse\n\u00a0 echo \"--- Error. Couldn't generate certificate via letsencrypt.\";\n\u00a0 sudo sv start \/home\/protonet\/dashboard\/shared\/services\/enabled\/nginx\n\u00a0 sudo service haproxy start\n\u00a0 exit $rc;\nfi\nif sudo test -e \"\/etc\/letsencrypt\/live\/$CUSTOM_DOMAIN\/fullchain.pem\"; then\n\u00a0 echo \"--- Certificate files exist.\";\nelse\n\u00a0 echo \"--- Error. Can't find certificate files.\"\n\u00a0 sudo sv start \/home\/protonet\/dashboard\/shared\/services\/enabled\/nginx\n\u00a0 sudo service haproxy start\n\u00a0 exit 1;\nfi\nsudo mv \/etc\/protonet\/httpd_ssl.crt \/etc\/protonet\/httpd_ssl.crt.old\nsudo mv \/etc\/protonet\/httpd_ssl.key \/etc\/protonet\/httpd_ssl.key.old\nsudo cp \/etc\/letsencrypt\/live\/$CUSTOM_DOMAIN\/fullchain.pem \/etc\/protonet\/httpd_ssl.crt\nsudo chown protonet:protonet \/etc\/protonet\/httpd_ssl.crt\nsudo chmod 0755 \/etc\/protonet\/httpd_ssl.crt\nsudo cp \/etc\/letsencrypt\/live\/$CUSTOM_DOMAIN\/privkey.pem \/etc\/protonet\/httpd_ssl.key\nsudo chown protonet:protonet \/etc\/protonet\/httpd_ssl.key\nsudo chmod 0755 \/etc\/protonet\/httpd_ssl.key\nsudo sv start \/home\/protonet\/dashboard\/shared\/services\/enabled\/nginx\nsudo service haproxy start\necho \"--- Enabling cron job to renew certificate once in a while.\"\ntouch \/etc\/protonet\/letsencrypt_enabled<\/pre>\n<\/blockquote>\n<pre style=\", monospace;font-size: 12.25px; margin-bottom: 1rem;\"><\/pre>\n<p>Nun kann man das Script einmal manuell starten<\/p>\n<pre>\/usr\/local\/bin\/letsencrypt<\/pre>\n<h5>Bei einer Fehlermeldung<\/h5>\n<p>Sollte hier noch eine Fehlermeldung auftauchen, m\u00fcssen evtl. noch Reste von TLS-SNI-01 entfernt werden, dies macht ihr mit folgendem Befehl<\/p>\n<pre>sudo sh -c \"sed -i.bak -e 's\/^\\(pref_challs.*\\)tls-sni-01\\(.*\\)\/\\1http-01\\2\/g' \/etc\/letsencrypt\/renewal\/*; rm -f \/etc\/letsencrypt\/renewal\/*.bak\"<\/pre>\n<h5>Um das ganze Reboot-Persistent zu bekommen, macht man Folgendes:<\/h5>\n<p>Wir wechseln in das Rootverzeichnis<\/p>\n<pre>cd \/<\/pre>\n<p>Nun packen wir die Datei und legen sie in das local_patch Verzeichnis ab. Sollte das Verzeichnis noch nicht existieren, legen wir es an<\/p>\n<pre>sudo mkdir \/protonet\/firmware\/local_patches<\/pre>\n<p>Existiert das Verzeichnis bereits, k\u00f6nnen wir direkt diesen Befehl ausf\u00fchren:<\/p>\n<pre>sudo tar cvzf \/protonet\/firmware\/local_patches\/letsencrypt_latest.tar.gz usr\/local\/bin\/letsencrypt<\/pre>\n<p>Nun wird bei jedem Neustart diese tar.gz Datei entpackt und die originale Datei \u00fcberschrieben. Wenn man dieses wieder r\u00fcckg\u00e4ngig machen m\u00f6chte, muss man einfach die tar.gz Datei aus dem local_patches Ordner entfernen und die Box neustarten.<\/p>\n<h5>Den Originalpost findet ihr hier:<\/h5>\n<p><a href=\"http:\/\/badberg.online\/r\/Klz\" class=\"broken_link\"><span style=\", helvetica, verdana, arial, sans-serif;font-size: 13px;\">http:\/\/badberg.online\/r\/Klz<\/span><\/a><\/p>\n<pre style=\", monospace;font-size: 12.25px; margin-bottom: 1rem;\"><\/pre>\n<div class=\"wcp-last-modified\">Last modified: 10.06.2019 - 11:50<\/div><\/div>","protected":false},"excerpt":{"rendered":"Ihr habt bestimmt eine Mail bekommen, dass der LetsEncrypt Client aktualisiert werden muss, wenn ihr LetsEncrypt mit eurer eigenen Domain nutzt. Dann weil noch ein alter Client genutzt wird, der TLS-SNI-01 verwendet. Dies m\u00f6chte LetsEncrypt aufgrund von Sicherheitsvorkehrungen abschalten. Weitere Infos hier auf Englisch: https:\/\/community.letsencrypt.org\/t\/action-required-lets-encrypt-certificate-renewals\/83163 Den Client auf der Box zu aktualisieren geht recht einfach, [&hellip;]","protected":false},"author":288,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1275],"tags":[1630,1628,1629],"_links":{"self":[{"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/posts\/19725"}],"collection":[{"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/users\/288"}],"replies":[{"embeddable":true,"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/comments?post=19725"}],"version-history":[{"count":13,"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/posts\/19725\/revisions"}],"predecessor-version":[{"id":19929,"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/posts\/19725\/revisions\/19929"}],"wp:attachment":[{"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/media?parent=19725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/categories?post=19725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.protonet.info\/de\/wp-json\/wp\/v2\/tags?post=19725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}