Benutzer-Werkzeuge

Webseiten-Werkzeuge


lets_encrypt

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
lets_encrypt [2017/03/09 22:20]
root [Certbot]
lets_encrypt [2018/10/23 19:34] (aktuell)
root [Zertifikat ohne Plugin verlängern]
Zeile 19: Zeile 19:
       * zum Beispiel Zertifikate direkt in der entsprechenden Software konfigurieren (Webserver, Mailserver usw.)       * zum Beispiel Zertifikate direkt in der entsprechenden Software konfigurieren (Webserver, Mailserver usw.)
  
-===== Certbot =====+===== Certbot-Auto =====
  
 +  * Certbot-Auto ist für Systeme ohne Internetanbindung oder für Systeme für die es kein Certbot-Packet gibt gedacht
 +  * Bezugsquelle und Installationsanleitung: https://certbot.eff.org/docs/install.html
 +      * Installation ist runterladen und ausführen
   * Kommando: certbot-auto   * Kommando: certbot-auto
   * Handbuch: http://letsencrypt.readthedocs.io/en/latest/using.html#manual   * Handbuch: http://letsencrypt.readthedocs.io/en/latest/using.html#manual
Zeile 51: Zeile 54:
 Es gibt mehrere Möglichkeiten das zu tun: Es gibt mehrere Möglichkeiten das zu tun:
  
-  * --apache -> Erledige das über das Apache-Plugin+  * <code>--apache</code> -> Erledige das über das Apache-Plugin
       * habe ich noch nicht getestet       * habe ich noch nicht getestet
-  * --nginx -> Erledige das über das Nginx-Plugin +  * <code>--nginx</code> -> Erledige das über das Nginx-Plugin 
       * habe ich noch nicht getestet       * habe ich noch nicht getestet
-  * --webroot+  * <code>--webroot</code>
       * Es werden Dateien in das Webroot gelegt die dann durch Lets Encrypt abgerufen werden       * Es werden Dateien in das Webroot gelegt die dann durch Lets Encrypt abgerufen werden
       * die Angabe des Verzeichnisses erfolgt interaktiv        * die Angabe des Verzeichnisses erfolgt interaktiv 
       * es muss natürlich das Webroot (Verzeichnis im Dateisystem) angegeben werden aus dem Standardmäßig, bei Aufruf der Domain für die man das Zertifikat erstellen will, gelesen wird       * es muss natürlich das Webroot (Verzeichnis im Dateisystem) angegeben werden aus dem Standardmäßig, bei Aufruf der Domain für die man das Zertifikat erstellen will, gelesen wird
-  * --standalone + 
 + 
 +   * interaktiv zuerst 1 drücken 
 +   * dann kommt Abfrage des Verzeichnisses -> Webroot eingeben 
 +   * <Enter> drücken 
 + 
 + 
 + 
 +  * <code>--standalone </code>
       * startet einen Webserver auf Port 443 (https) (der vermutlich einen Authentifizierungs-Token ausliefert)       * startet einen Webserver auf Port 443 (https) (der vermutlich einen Authentifizierungs-Token ausliefert)
       * bei Auflösung des Domain-Namen (für den das Zertifikat beantragt wird) muss der Webserver unter der IP in den der sich auflöst erreichbar sein       * bei Auflösung des Domain-Namen (für den das Zertifikat beantragt wird) muss der Webserver unter der IP in den der sich auflöst erreichbar sein
-  * --manual -> Gedacht wenn man das Zertifikat für einen anderen Rechner abrufen will+  * <code>--manual</code> -> Gedacht wenn man das Zertifikat für einen anderen Rechner abrufen will
       * noch nicht genutzt       * noch nicht genutzt
  
 Es gibt noch weitere 3-rd-Party Plugins die weitere Möglichkeiten bieten (Authentifizierung über andere Anwendungen wie Mailserver usw.)  -> siehe Handbuch Es gibt noch weitere 3-rd-Party Plugins die weitere Möglichkeiten bieten (Authentifizierung über andere Anwendungen wie Mailserver usw.)  -> siehe Handbuch
 +\\ \\
  
 +Die Option -d gibt an für welche Domain man das Zertifikat beziehen will (wenn mehrere angegeben werden landen die alle im gleichen Zertifikat). \\ \\
  
 +Syntax:
 +<code>
 +./certbot-auto //Nur Zertifikat oder inkl. Installieren// --//Authentifizierungsmethode// -d //Domain(s)//
 +</code>
  
 +Beispiel:
 +<code>
 +./certbot-auto certonly --webroot -d example.com
 +</code>
 +
 +Obiges Beispiel bezieht nur das Zertifikat (richtet es aber nicht ein) (certonly), die Authentifizierung erfolgt durch das (automatische -> certbot macht das nach Angabe des Verzeichnisses) hinterlegen von Dateien im Webroot (wird abgefragt wo das ist) für die Domain "example.com"
  
  
Zeile 88: Zeile 111:
  
      
 +====== HowTo ======
 +
 +===== Zertifikat ohne Plugin verlängern =====
 +
 +  * Bei der Installation von certbot über einen Packagemanager wird in der Regel auch ein Cron-Scrip für die Erneuerung der Zertifikate installiert
 +
 +Im Fall von Debian sieht das so aus:
 +<code>
 +/usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew
 +</code>
 +
 +Im Prinzip ist es certbot renew. \\
 +Renew setzt aber Voraus das es ein Plugin im Webserver nutzen kann um Authentifzierung und Installation der Zertifikate durchführen zu können und das bei der Erst-Installation des Zertifikats diese Methode genutzt wurde.
 +\\ \\
 +Um eine andere Authentifizierungsmethode zu nutzen um das Zertifikat zu erneuern kann der cron-Job diesen Befehl ausführen:
 +<code>
 +certbot certonly -n --<Methode> [Optional notwendige Optionen] -d <Domain> | grep 'Certificate not yet due' || systemctl restart <someservice>
 +</code>
 +
 +  * -n -> Non-Interactive -> Frage nicht den Benutzer nach Eingaben -> alle notwendigen Eingaben müssen in Form von Parametern vorhanden sein
 +  * <code>--<Method></code> -> Authentifizierungsmethode -> z.B. webroot
 +  * [Optional notwendige Optionen] -> Die Optionen die notwendig sind damit certonly mit der gewählten Authentifizierungsmethode ohne Benutzerinteraktion arbeiten kann. Vorher auf der Kommandozeile manuell testen, die Option -n gibt aus welche Optionen ggf. nötig sind
 +  * -d <Domain> -> die Domain für die Aktion durchgeführt werden soll (ggf. mehrfach angeben wenn mehrere Domains)
 +  * der Rest -> certbot liefert als Return-Value immer 0 zurück, auch wenn es nichts geändert hat. D.h. auch wenn kein neues Zertifikat bezogen wurde würde ggf. ein daran hängender Dienst neugestartet. Das grep prüft ob das Zertifikat nicht erneuert wurde und nur wenn es nicht-nicht erneuert wurde (also erneuert wurde) wird der Dienst im Befehl nach || neugestartet
 +
 +Beispiel:
 +<code>
 +certbot certonly -n --webroot -w /var/www/someforum/ -d forum.test.de | grep 'Certificate not yet due' || systemctl restart apache2.service
 +</code>
 +
 +Obiges Beispiel erneuert das Zertifikat für Domain forum.test.de, mit Authentifizierungsmethode webroot, der Pfad um die Authentifizierungsdaten zu hinterlegen ist /var/www/someforum/ und wenn das Zertifikat erneuert wurde wird apache neugestartet.
 +
 +
 +<WRAP center round important 60%>
 +Vor certbot muss der Pfad gestellt werden wo certbot installiert ist -> im Fall von Debian /usr/bin/
 +</WRAP>
 +
 ====== Troubleshooting ====== ====== Troubleshooting ======
  
Zeile 134: Zeile 194:
  
  
 +===== Zertifikate werden nicht automatisch verlängert =====
  
 +  * Cron-Job nicht vorhanden 
 +  * Es wurde eine andere Authentifizierungsmethode als "--apache" gewählt (aka. das erste Zertifikat für die Domain wurde nicht per certbot run bzw. nur certbot erstellt) 
 +      * certbot renew - das ist der Befehl der durch das per Default installierte cron-Script genutzt wird, kann  Zertifikate nur erneuern wenn es ein Plugin für den Webserver hat und darüber die Authentifizierung und Installation des Zertifikates machen kann 
 +      * Lösung siehe Howto -> Zertifikat ohne Plugin erneuern
lets_encrypt.1489094455.txt.gz · Zuletzt geändert: 2017/03/09 22:20 von root