Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| — | anwenderwiki:server:ssl-tls-letsencrypt-alt [2016/12/10 14:38] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | {{tag> | ||
| + | <note warning> | ||
| + | \\ | ||
| + | Funktioniert !! Anleitung leicht ergänzt.** | ||
| + | \\ | ||
| + | Gruß C. Weikl | ||
| + | </ | ||
| + | \\ | ||
| + | <note important> | ||
| + | |||
| + | ====== Signierte SSL/TLS - Zertifikate mit LetsEncrypt erstellen, in Apache und Ldap implementieren und automatisch aktualisieren ====== | ||
| + | ---- | ||
| + | **Antifrust - TIPP zu Beginn:** | ||
| + | <note tip> | ||
| + | ===== 1. LetsEncrypt-Client installieren ===== | ||
| + | |||
| + | |||
| + | Momentan ist der letsencrypt-client noch nicht in den Paketquellen von Ubuntu enthalten, daher muss man ihn manuell herunterladen und installieren. | ||
| + | |||
| + | Vorgehen: | ||
| + | |||
| + | ==== a.) Git installieren ==== | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | ==== b.) Letsencrypt - Client herunterladen ==== | ||
| + | |||
| + | < | ||
| + | #cd /opt | ||
| + | #git clone https:// | ||
| + | #cd letsencrypt/ | ||
| + | </ | ||
| + | |||
| + | ===== 2. Programmumgebung einrichten und Zertifikat erzeugen ===== | ||
| + | |||
| + | Als nächstes müssen ggf. eventuelle Abhängigkeiten (python-module) nachinstalliert werden (dies erledigt der letsencrypt-wrapper beim ersten Aufruf automatisch) und danach das initiale Zertifikat erzeugt werden; das passiert alles mit einem Befehl! Zuvor muss der apache kurz angehalten werden. | ||
| + | |||
| + | < | ||
| + | #service apache2 stop | ||
| + | # | ||
| + | # service apache2 start | ||
| + | </ | ||
| + | |||
| + | Beispiel für die Einrichtungszeile: | ||
| + | < | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Die Option '' | ||
| + | |||
| + | Sollen die Zertifikate mit einem längeren RSA-Schlüssel erstellt werden, so kann in o.g. Befehlszeile die Option | ||
| + | < | ||
| + | --rsa-key-size 4096 | ||
| + | </ | ||
| + | angegeben werden. Ohne diese Angabe wird der Schlüssel mit 2048 Bit erstellt, so dass die Schlüssellänge somit deroppelt wird. | ||
| + | |||
| + | Sollen weitere Subdomains oder weitere Domains angegeben werden, so kann o.g. Befehlszeile erweitert werden: | ||
| + | < | ||
| + | -d meinedomain.de -d erstesubdomain.meinedomain.de -d zweitesubdomain.meinedomain.de -d zweitedomain.de | ||
| + | </ | ||
| + | |||
| + | Das erstellte Zertifikat befindet sich jetzt in ''/ | ||
| + | ===== 3. Apache auf das neue Zertifikat umstellen ===== | ||
| + | |||
| + | Der Pfad zum neuen Zertifikat muss in ''/ | ||
| + | |||
| + | < | ||
| + | --Schnipp-- | ||
| + | |||
| + | SSLEngine on | ||
| + | # SSLCertificateFile / | ||
| + | # SSLCertificateKeyFile / | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | --Schnapp-- | ||
| + | </ | ||
| + | |||
| + | Danach den apache neustarten. Alle extern erreichbaren Seiten (MRBS, Portfolio, etc.) sollten nun das Zertifikat von LetsEncrypt " | ||
| + | |||
| + | Bemerkung: Ich habe das originale Zertifikat server.pem in server-orig.pem umbenannt und in ''/ | ||
| + | |||
| + | Sollten weitere vHosts definiert sein, so sind o.g Zeilen auch in diesen Konfigurationszeilen einzutragen und der Webserver ist neu zu starten. | ||
| + | |||
| + | Neustart des Apache Webserver: | ||
| + | < | ||
| + | service apache2 restart | ||
| + | </ | ||
| + | |||
| + | Um zu kontrollieren, | ||
| + | < | ||
| + | ls -alh / | ||
| + | </ | ||
| + | Ist der gewünschte vHost dort nciht zu finden, ist unter / | ||
| + | < | ||
| + | a2ensite meinesite.de | ||
| + | </ | ||
| + | |||
| + | Soll bei Aufruf der Site im Browser immer die gesicherte Verbindung genutzt werden, so ist in der Apache-Konfiguration noch ein Redirect auf die HTTPS-Seite anzugeben - < | ||
| + | < | ||
| + | # redirect port 80 access to ssl access via port 443 | ||
| + | # apache mod rewrite has to be enabled | ||
| + | RewriteEngine On | ||
| + | RewriteCond %{HTTPS} !=on | ||
| + | RewriteRule ^/(.*) https:// | ||
| + | </ | ||
| + | |||
| + | |||
| + | <note important> | ||
| + | ===== 4. Ldap auf das neue Zertifikat umstellen ===== | ||
| + | |||
| + | Manchmal ist es notwendig, im Ldap signierte TLS-Zertifikate zu verwenden. Beispielsweise ist das Voraussetzung für die Authentifizierung gegen Webuntis. | ||
| + | |||
| + | Die Umstellung des ldap auf signierte Zertifikate, | ||
| + | |||
| + | === 4.1 Originales Zertifikat sichern === | ||
| + | |||
| + | Als erstes sichert man das originale Zertifikat: | ||
| + | |||
| + | < | ||
| + | #service slapd stop | ||
| + | #mv / | ||
| + | </ | ||
| + | |||
| + | === 4.2 Zertifikat für ldap zusammenbauen und an die richtige Stelle schieben === | ||
| + | |||
| + | Im zweiten Schritt " | ||
| + | |||
| + | < | ||
| + | #cd / | ||
| + | |||
| + | #cat privkey.pem >> server.pem | ||
| + | #cat cert.pem >> server.pem | ||
| + | #cat chain.pem >> server.pem | ||
| + | </ | ||
| + | schiebt es an die richtige Stelle und passt die Rechte an: | ||
| + | |||
| + | < | ||
| + | #mv server.pem / | ||
| + | #chown root: | ||
| + | #chmod 640 / | ||
| + | #service slapd start | ||
| + | </ | ||
| + | |||
| + | Das sollte es gewesen sein! Nun testen, ob die Authentifizierung klappt... | ||
| + | ===== 5. Automatische Erneuerung des Zertifikats per Cronjob ===== | ||
| + | |||
| + | Das Zertifikat von LetsEncrypt ist für 90 Tage gültig. Folgendes Skript sorgt durch einen passenden Cronjob ausgeführt für die automatische Erneuerung: | ||
| + | |||
| + | < | ||
| + | #!/bin/sh | ||
| + | |||
| + | #service apache2 stop | ||
| + | #cd / | ||
| + | # | ||
| + | #service apache2 start | ||
| + | </ | ||
| + | |||
| + | Der Eintrag in der Crontab könnte so aussehen, damit alle 85 Tage die Zertifikate erneuert werden: | ||
| + | < | ||
| + | * * */85 * * / | ||
| + | </ | ||
| + | |||
| + | Darauf achten, dass das Skript die Ausführungsberechtigung besitzt (chmod +x). | ||
| + | |||
| + | Hier ist man fertig, falls das Zertifikat nur für den Webserver benutzt wird. | ||
| + | |||
| + | Für Ldap geht es so weiter: | ||
| + | < | ||
| + | #cd / | ||
| + | #cat privkey.pem >> server.pem | ||
| + | #cat cert.pem >> server.pem | ||
| + | #cat chain.pem >> server.pem | ||
| + | #service slapd stop | ||
| + | #mv / | ||
| + | #mv server.pem / | ||
| + | #cd / | ||
| + | #chown root: | ||
| + | #chmod 640 server.pem | ||
| + | #service slapd start | ||
| + | </ | ||