TLS
TSL
Zertifikate
Wir benutzen für alle webbasierten Dienste Letsencrypt. Die Zertifikate werden aktuell zentral auf inbert im LXC Container web generiert, die Container jabber und mail haben einen Timer für renew.
Dafür werden alle ACME-Anfragen (.well-known/acme-challenge) auf Port 80 auf ein für letsencrypt schreibbares Verzeichnis umgeleitet. Alle anderen Anfragen werden auf HTTPS weitergeleitet.
#/etc/apache2/sites-enabled/000-letsencrypt <VirtualHost *:80> ServerAlias * RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.* RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L] Alias "/.well-known/acme-challenge" "/var/www/letsencrypt/.well-known/acme-challenge" <Directory "/var/www/letsencrypt/.well-known/acme-challenge"> Header set Content-Type "application/jose+json" </Directory> </VirtualHost>
Die Zertifikate wurden folgendermaßen generiert:
letsencrypt certonly --renew-by-default --webroot --webroot-path /var/www/letsencrypt/ --text \ -d c3d2.de \ -d netzbiotop.org \ -d datenspuren.de \ -d git.c3d2.de \ -d media.c3d2.de \ -d offen.c3d2.de \ -d pentamedia.org \ -d pentapad.c3d2.de \ -d ratskarte.offenesdresden.de \ -d redmine.c3d2.de \ -d webmail.c3d2.de \ -d wiki.c3d2.de \ -d www.c3d2.de \ -d www.datenspuren.de \ -d www.pentamedia.org \ -d cccdd.de \ -d dresden.ccc.de
Das Zertifikat werden automatisch am Anfang eines Monat erneuert:
# letsencrypt.timer [Unit] Description=Renew Let's Encrypt certificate monthly https://wiki.c3d2.de/TLS#Zertifikate [Timer] OnCalendar=monthly Persistent=true [Install] WantedBy=multi-user.target
# letsencrypt.service [Unit] Description=Renew Let's Encrypt certificate monthly https://wiki.c3d2.de/TLS#Zertifikate [Service] Type=oneshot ExecStart=/usr/bin/letsencrypt certonly \ --agree-tos \ --renew-by-default \ --webroot \ --webroot-path /var/www/letsencrypt/ \ --email joerg@higgsboson.tk \ --text \ -d c3d2.de \ -d netzbiotop.org \ #... -d dresden.ccc.de ExecStartPost=/bin/systemctl reload apache2
Um den Service manuell nach Aktualisierungen an der auszuführen, zuvor systemctl daemon-reload
ausführen und anschließend systemctl start letsencrypt
starten.
SSL-Test
Interessant und informativ bezüglich des Konfigurationstests ist definitiv diese Seite von Qualys.