{"id":1133,"date":"2016-02-04T21:40:12","date_gmt":"2016-02-04T20:40:12","guid":{"rendered":"https:\/\/www.thju.de\/?page_id=1133"},"modified":"2020-12-31T23:51:19","modified_gmt":"2020-12-31T22:51:19","slug":"lets-encrypt","status":"publish","type":"page","link":"https:\/\/www.thju.de\/en\/bash-scripte\/lets-encrypt\/","title":{"rendered":"Let\u2019s Encrypt"},"content":{"rendered":"<h2>Allgemeines<\/h2>\n<p>Let\u2019s Encrypt ist ein neuer Dienst f\u00fcr kostenlose SSL-Zertifikate. Dieses BASH-Script automatisiert das Erstellen von den Keys und Zertifikaten.<\/p>\n<h2>Abh\u00e4nigkeiten<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/diafygi\/acme-tiny\" target=\"_blank\" rel=\"noopener noreferrer\">acme-tiny<\/a><\/li>\n<li>Webserver<\/li>\n<li>Phyton<\/li>\n<li>OpenSSL<\/li>\n<li>NetCat<\/li>\n<li>Wget<\/li>\n<li>Cron (Optional)<\/li>\n<\/ul>\n<h2>Funktion<\/h2>\n<p><em>Info folgt noch<\/em><\/p>\n<h2>Einrichtung<\/h2>\n<ol>\n<li>Als root den folgenden Befehl ausf\u00fchren:<br \/>\n<code>curl https:\/\/dl.thju.de\/CryptOn\/CryptOn-11.tar | tar -v --absolute-names -x --keep-old-files<\/code><\/li>\n<li>In Das Verzeichnis f\u00fcr die Konfigurationsdateien wechseln<em>cd \/opt\/CryptOn\/etc\/CryptOn<\/em><\/li>\n<li>Datei <em>\/opt\/CryptOn\/etc\/CryptOn\/defaults<\/em> anpassen.<\/li>\n<li>F\u00fcr jedes Zertifikat eine .conf datei in <em>\/opt\/CryptOn\/etc\/CryptOn\/<\/em> anlegen<\/li>\n<li>Script ausf\u00fchren<br \/>\n\/opt\/CryptOn-Vorlage\/bin\/CryptOn<\/li>\n<li>Script in Cron eintragen (t\u00e4glich ausf\u00fchren)<\/li>\n<li>Konfigurationen von Anwendungen, welche dieses Keys \/ Zertifikate benutzen sollen umstellen. Die Keys liegen in <em>\/opt\/CryptOn\/etc\/ssl\/(domainname)<\/em><\/li>\n<\/ol>\n<h3>Variablen<\/h3>\n<ul>\n<li><strong>CONFDIR:<\/strong> Phat zum Verzeichnis mit Config-Dateien (Optional)<\/li>\n<li><strong>ACCOUNTKEY:<\/strong> Phat zum Account-Key. Der Key kann mit dem Befehl &#8220;openssl genrsa 4096 > account.key&#8221; erstellt werden. Dieser Key muss gut gesichert werden. Der Account-Key kann f\u00fcr alle Domains benutzt werden.<\/li>\n<li><strong>KEYDIR:<\/strong> Hauptverzeichnis f\u00fcr die Generierten Keys.<\/li>\n<li><strong>DOMAIN:<\/strong> Auf diese Domain wird das Zertifikat ausgestellt (Nur eine Domain zul\u00e4ssig!)<br \/>\nz.B: &#8220;DOMAIN=example.com&#8221;<\/li>\n<li><strong>ALTDOMAINS:<\/strong> Alternative Domain-Namen (Die DOMAIN wird hier automatisch eingetragen)<br \/>\nz.B: &#8220;ALTDOMAINS=&#8221;www.example.com example.net www.example.net&#8221;<\/li>\n<li><strong>COUNTRY:<\/strong> K\u00fcrzel des Landes (DE f\u00fcr Deutschland)*<\/li>\n<li><strong>STATEORPROVINCENAME:<\/strong> Bundesland*<\/li>\n<li><strong>CITY:<\/strong> Stadt*<\/li>\n<li><strong>EMAIL:<\/strong> e-Mail-Adresse*<\/li>\n<li><strong>WEBROOT:<\/strong> Dieses Verzeichnis muss von den Let&#8217;s Encrypt-Server auf Port 80 \u00fcber HTTP erreichbar sein (Domain und alle ALTDOMAINS!)<\/li>\n<li><strong>ACMETINY:<\/strong> Vollst\u00e4ndiger Phat zu acme_tiny.py<\/li>\n<li><strong>WEBSERVERRESTARTCMD:<\/strong> Dieses Kommando wird nach erfolgreicher Erstellung von dem Zertifikat ausgef\u00fchrt. (\/bin\/true eintragen, wenn nichts ausgef\u00fchrt werden soll)<\/li>\n<li><strong>IMAPRESTART:<\/strong> Dieses Kommando wird nach erfolgreicher Erstellung von dem Zertifikat ausgef\u00fchrt. (\/bin\/true eintragen, wenn nichts ausgef\u00fchrt werden soll)<\/li>\n<li><strong>SMTPRESTART:<\/strong> Dieses Kommando wird nach erfolgreicher Erstellung von dem Zertifikat ausgef\u00fchrt. (\/bin\/true eintragen, wenn nichts ausgef\u00fchrt werden soll)<\/li>\n<li><strong>CHOWN:<\/strong> Benutzer und Gruppe f\u00fcr Keys werden festgelegt<br \/>\nCHOWN=&#8221;root:ssl-cert&#8221; f\u00fcr Benutzer root und die Gruppe ssl-cert<\/li>\n<li><strong>CHMOD:<\/strong> Standard CHMOD=&#8221;o-rwx&#8221; entfernt alle Rechte f\u00fcr Sonstige Benutzer. Dienste, welche diese Keys ben\u00f6tigen m\u00fcssen Mitglied ind er Gruppe sein.<\/li>\n<li><strong>ACMESUBDIR:<\/strong> Standard-Unterverzeichnis f\u00fcr die ACME-Challenge (Dieses sollte nicht ge\u00e4ndert werden)<\/li>\n<li><strong>RENEWDAYS:<\/strong>Restlaufzeit des Zertifikates in Tagen, bevor es erneuert wird. Ich Empfehle 15 Tage. Bei 91 Tagen w\u00fcrde das Script bei jedem aufruf das Zeritifikat erneuern<\/li>\n<\/ul>\n<p>* Diese Angaben werden in den Certificate-Signing-Request (CSR) eingetragen. Let&#8217;s Encrypt \u00fcbernimmt diese vermutlich nicht. Eventuell werden diese Angaben bei einer sp\u00e4teren Version von dem BASH-Script entfernt.<\/p>\n<p>Hinweis: <del datetime=\"2017-02-16T08:00:01+00:00\">Das Script kann nur 1 Zertifikat erstellen. Werden mehrer Zertifikate ben\u00f6tigt, muss das Script kopiert werden.<\/del> <em>(Ab Version 06 vom 08.02.2017 werden Config-Dateien unterst\u00fctzt).<\/em> Per SAN (ALTDOMAINS) k\u00f6nnen mehrer Domains in einem Zertifikat eingetragen werden.<\/p>\n<p>TIPP: F\u00fcr alle Domains den gleichen Challenge-Ordner nehmen und in der Webserver-Config per Alias richtig verkn\u00fcpfen.<\/p>\n<h2>\u00dcberpr\u00fcfen<\/h2>\n<p>In dem Ordner $KEYDIR\/$DOMAIN\/keys liegen die neu erstellen Schl\u00fcssel und Zertifikate. Im Fehlerfall bleibt der aktuelle keys Ordner erhalten und die Daten von dem Fehlgeschlagen versuch sind in keys-temp-[datum] zu finden.<\/p>\n<p>In der log.txt kann man sich die ausgaben von der Erstell-Prozess anschauen. Das Script schreibt alle ausgaben in in log.txt. Eine Ausgabe auf die Konsole findet nicht statt.<\/p>\n<p>Mit dem Befehl &#8220;openssl req -noout -text -in example.com.csr&#8221; kann man sich den Inhalt von dem Certificate-Signing-Request anschauen.<\/p>\n<p>Mit dem Befehl &#8220;openssl x509 -noout -text -in example.com.crt&#8221; kann man sich den Inhalt von dem Zertifikat anschauen.<\/p>\n<h2>Config-Dateien<\/h2>\n<h3>Beispiel von einer &#8220;defaults&#8221; Config<\/h3>\n<pre class=\"tab-convert:true lang:sh decode:true \" data-url=\"https:\/\/dl.thju.de\/letsencrypt\/defaults-11\"><\/pre>\n<h3>Beispiel von einer &#8220;example.conf&#8221;<\/h3>\n<pre class=\"tab-convert:true lang:sh decode:true \" data-url=\"https:\/\/dl.thju.de\/letsencrypt\/example.com.conf-11\"><\/pre>\n<h2>Code \/ Script<\/h2>\n<pre class=\"tab-convert:true lang:sh decode:true \" data-url=\"https:\/\/dl.thju.de\/letsencrypt\/CryptOn-11.sh\"><\/pre>\n<h2>acme-tiny von Github<\/h2>\n<div class=\"scbb-content-box scbb-rounded-corners scbb-content-box-green\">Download von <a href=\"https:\/\/github.com\/diafygi\/acme-tiny\" target=\"_blank\" rel=\"noopener noreferrer\">acme-tiny<\/a>!<\/div>\n<pre class=\"lang:python decode:true \" data-url=\"https:\/\/raw.githubusercontent.com\/diafygi\/acme-tiny\/master\/acme_tiny.py\"><\/pre>\n<h2>Zuk\u00fcnftige m\u00f6gliche Verbesserungen<\/h2>\n<ul>\n<li><del>Unterst\u00fctzung von Config-Dateien.<\/del> Seit Version 06 vom 08.02.2017 vorhanden<\/li>\n<li><del>\u00dcberpr\u00fcfung des Ablaufsdatum eines Zertifikates.<\/del> Seit Version 06 vom 08.02.2017 vorhanden<\/li>\n<\/ul>\n<h2>Changelog<\/h2>\n<h3>Version 11 vom 01.01.2021<\/h3>\n<ul>\n<li>Let&#8217;s Encrypt hat die Chain of Trust ge\u00e4ndert. Neue Zwischenzertifikate eingebaut.<\/li>\n<\/ul>\n<h3>Version 10 vom 05.01.2019<\/h3>\n<ul>\n<li>Bug mit neuer acme_tiny.py Version gefixed<\/li>\n<li>Schl\u00fcssell\u00e4nge (BITS) sind pro Domain Einstellbar<\/li>\n<li>In der \/etc\/hosts kann 127.0.0.1 f\u00fcr die Angefragten Domains hinzugef\u00fcgt werden. Ist f\u00fcr Spezielle Anforderungen hinter NAT-Routern<\/li>\n<\/ul>\n<h3>Version 08 vom 27.05.2017<\/h3>\n<ul>\n<li>Installation vereinfacht<\/li>\n<li>Pfade f\u00fcr Dateien angepasst. Es liegen jetzt nach dem Entpacken alle Dateien in <em>\/opt\/CryptOn<\/em>.<\/li>\n<li>Account Key wird jetzt bei Bedarf erstellt<\/li>\n<li>Name in CryptOn ge\u00e4ndert<\/li>\n<\/ul>\n<h3>Version 07 vom 22.03.2017<\/h3>\n<ul>\n<li>Rechte f\u00fcr *.pem Datei wurden nicht gesetzt<\/li>\n<\/ul>\n<h3>Version 06 vom 08.02.2017<\/h3>\n<ul>\n<li>Unterst\u00fctzung f\u00fcr Konfigurations-Dateien hinzugef\u00fcgt<\/li>\n<li>Pr\u00fcfung der Restlaufzeit von dem Zertifikat hinzugef\u00fcgt<\/li>\n<\/ul>\n<h3>Version 05 vom 14.04.2016<\/h3>\n<ul>\n<li>Zwischenzertifikat vom x1 aus x3 umgestellt<\/li>\n<\/ul>\n<h3>Version 04 vom 04.02.2016<\/h3>\n<ul>\n<li>Erste Ver\u00f6ffentlichung<\/li>\n<\/ul>\n<h2>R\u00fcckmeldung (Feedback)<\/h2>\n<p>R\u00fcckmeldung als Kommentar oder e-Mail (siehe Impressum) ist willkommen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Allgemeines Let\u2019s Encrypt ist ein neuer Dienst f\u00fcr kostenlose SSL-Zertifikate. Dieses BASH-Script automatisiert das Erstellen von den Keys und Zertifikaten. Abh\u00e4nigkeiten acme-tiny Webserver Phyton OpenSSL NetCat Wget Cron (Optional) Funktion Info folgt noch Einrichtung Als root den folgenden Befehl ausf\u00fchren: &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/www.thju.de\/en\/bash-scripte\/lets-encrypt\/\"> <span class=\"screen-reader-text\">Let\u2019s Encrypt<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":661,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1133","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/pages\/1133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/comments?post=1133"}],"version-history":[{"count":86,"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/pages\/1133\/revisions"}],"predecessor-version":[{"id":1459,"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/pages\/1133\/revisions\/1459"}],"up":[{"embeddable":true,"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/pages\/661"}],"wp:attachment":[{"href":"https:\/\/www.thju.de\/en\/wp-json\/wp\/v2\/media?parent=1133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}