software:letsencrypt

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
software:letsencrypt [2021/02/05 13:13] – [Apache] stsoftware:letsencrypt [2023/08/11 10:24] (aktuell) – [Hooks] st
Zeile 16: Zeile 16:
 :!: Da letsencrypt hat die [[https://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210|Methode TLS-SNI-01 entfernt]], daher ist nun mindestens **certbot --version >= 0.28** nötig. :!: Da letsencrypt hat die [[https://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210|Methode TLS-SNI-01 entfernt]], daher ist nun mindestens **certbot --version >= 0.28** nötig.
  
-==== Debian 10 ====+==== Debian 10 + 11 ====
  
 <code bash>apt install certbot python3-certbot-apache python3-certbot-nginx</code> <code bash>apt install certbot python3-certbot-apache python3-certbot-nginx</code>
Zeile 51: Zeile 51:
 **generisch**: **generisch**:
 <code bash> <code bash>
-./letsencrypt-auto certonly --rsa-key-size 3072 -d DOMAIN.tld -d www.DOMAIN.tld+certbot --rsa-key-size 3072 -d DOMAIN.tld -d www.DOMAIN.tld
 </code> </code>
  
-bei Apache + standalone-Variante vorher Webserver stoppen: +==== Hooks ====
-<code>letsencrypt certonly --pre-hook "systemctl stop apache2" --post-hook "systemctl start apache2" --rsa-key-size 3072 -d DOMAIN.tld -d www.DOMAIN.tld </code>+
  
 +Die wichtigsten hooks:
 +  * pre-hook + post_hooks (Befehle die vorher bzw. nachher laufen)
 +  * deploy_hooks (nach erfolgreicher Verlängerung z.B. zur Installation des Zertifikats)
  
 +Verzeichnisse: /etc/letsencrypt/renewal-hooks/{pre,post,deploy} (z.B. /etc/letsencrypt/renewal-hooks/deploy/allservices.sh)
  
 +Beispiel: bei standalone-Variante Webserver lighttpd (der keine Integration hat) stoppen ((allerdings wäre hier die Methode webroot sinnvoller)):
 +<code bash>certbot certonly --pre-hook "systemctl stop lighttpd" --post-hook "systemctl start lighttpd" --rsa-key-size 3072 -d DOMAIN.tld -d www.DOMAIN.tld </code>
 +
 +Es können auch mehrere Befehle (innerhalb eines hooks) angegeben werden: <code>--pre-hook "service apache2 stop ; service postfix stop"</code>
 +
 +https://eff-certbot.readthedocs.io/en/stable/using.html#renewing-certificates
 ==== Zertifikate verlinken ==== ==== Zertifikate verlinken ====
  
Zeile 114: Zeile 123:
 pre_hook = systemctl stop apache2 pre_hook = systemctl stop apache2
 </file> </file>
 +
 +===== Integrationen =====
  
 ==== Apache ==== ==== Apache ====
 +
 +<code bash>apt install python3-certbot-apache</code>
 +
 +<code bash>certbot certonly --apache --deploy-hook "systemctl restart apache2" -d $Domain</code>
  
 /etc/letsencrypt/renewal/$Domain.conf /etc/letsencrypt/renewal/$Domain.conf
Zeile 124: Zeile 139:
 </file> </file>
  
-Es können auch mehrere Befehle (Dienste) angegeben werden: 
  
-<code>--pre-hook "service apache2 stop ; service postfix stop</code>"+==== nginx ====
  
 +<code bash>apt install python3-certbot-nginx</code>
  
- +<code bash>certbot certonly --nginx --deploy-hook "systemctl restart nginx" -d $Domain</code>
-==== nginx ==== +
- +
-apt install python3-certbot-nginx+
  
 /etc/letsencrypt/renewal/$Domain.conf /etc/letsencrypt/renewal/$Domain.conf
Zeile 149: Zeile 161:
 $Domain = /var/www/default/html $Domain = /var/www/default/html
 </file> </file>
 +
  
 ==== cronjob ==== ==== cronjob ====
Zeile 161: Zeile 174:
 0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew 0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
 </file> </file>
 +
 +
 +==== deploy_hooks reparieren (mit ansible) ====
 +
 +Die Verlängerung der Zertifikate funktioniert aber der Service der sie benutzt wird oft nicht vor Ablauf des Zertifikats neu gestartet?
 +Dafür sind die hooks da, inbesondere der deploy_hook.
 +
 +Falls diese fehlen korrigiert das folgende playbook die deploy_hook (und optional noch die pre_hook or post_hook):
 +
 +[[https://gist.github.com/stefanux/11955353ea4f8002b73e433cbb5dc72e|gist]]:
 +<html><script src="https://gist.github.com/stefanux/11955353ea4f8002b73e433cbb5dc72e.js"></script></html>
 +