====== Informationen über die minad.de SSL-Zertifkikate ======
minad.de hat - wie jeder ordentliche Server SSL-Zertifikate um SSL-Gesicherten Datenaustausch zu ermöglichen. Zur Zeit verwenden wir selbstsignierte Zertifikate, d.h wir haben eine eigene CA, die die minad.de Zertifikate bestätigt. Wie jeder vernünftige Mensch verwendet minad jetzt [[https://letsencrypt.org/|Let's Encrypt]].
===== Zertifikat Neuantrag =====
Neue Zertifikate müssen nur einmal beantragt werden. Dafür hat sich folgender command etabliert:
certbot certonly --agree-tos --renew-by-default --email root@minad.de --webroot -w /var/www/letsencrypt -d brot.minad.de
Hinweis: Nachdem es ein Limit von 20 renews pro Domain pro Woche gibt (domain in dem fall minad.de oder grilldienstag.de ohne jeweilige sub), bietet es sich an Domains logisch zusammenzufassen.
Deswegen [[ssl_cert_list|hier eine Liste unserer Zertifikate inkl. der Domains für die sie gelten]].
===== Zertifikate mit alternativen Namen =====
Ein Zertifikat mit alternativen Namen wird ähnlich ausgestellt wie ein Zertifikat für eine Domain. Weitere Domains werden einfach Komma-getrennt an die Option //-d// angehängt. Maximal 100 Domains können in einem Zertifikat gespeichert werden. Mit den 20 Domains pro Woche ergeben sich so 2000 geschützte Seiten.
certbot certonly --agree-tos --renew-by-default --email root@minad.de --webroot -w /var/www/letsencrypt -d rellig.minad.de,wasser.minad.de,paste.minad.de
Die erste Domain bestimmt den Pfad unter dem das Zertifikat gespeichert wird und ist gleichzeitig im Feld "Ausgestellt für" gespeichert.\\
Sollen nachträglich weitere alternative Namen eingefügt werden, so nimmt man die __exakt gleiche__ Liste wie beim ausstellen und fügt den neuen Namen ein. Der certbot sollte nun fragen, ob das bestehende Zertifikat erweitert werden soll. Am Besten mit //--dry-run// testen.\\
Zum Überblick [[ssl_cert_list|hier eine Liste unserer Zertifikate inkl. der Domains für die sie gelten]].
===== Automatisches Verlängern =====
Das automatische renewal funktioniert über zwei Systemd-Units inkl. Timer, und ein Skript dass die Zertifikate für lighty zusammenbaut.
==== certbot ====
[Unit]
Description=Call certbot to renew all certificates
After=network.target
[Service]
User=root
Type=oneshot
ExecStart=/usr/bin/certbot renew
[Unit]
Description=Timer for the sslscript - currently daily
[Timer]
OnCalendar=Wed *-*-* 10:07:00
[Install]
WantedBy=timer.target
==== sslscript ====
Das Skript dass das für den lighty zusammenpastet und kopiert siehe [[https://gitlab.minad.de/brot/sslscript|das sslscript Gitlab repo]].
[Unit]
Description=Check if there are renewed SSL-Certs and convert them for lighty
After=network.target
[Service]
User=root
Type=oneshot
ExecStart=/root/sslscript/sslscript.sh
[Unit]
Description=Timer for the sslscript - currently daily
[Timer]
OnCalendar=Tue *-*-* 10:07:00
[Install]
WantedBy=timer.target