Letsencrypt-Fake für den Congress

Da während des Congresses potentiell alle Infrastruktur (incl. Let's Encrypt bzw. deren Rate Limits) kaputt ist, verwenden wir während des Congresses kein echtes Let's Encrypt renewal. Stattdessen generieren wir ein LE-Cert für alle CDN-Hosts im Dezember, welches dann 3 Monate und damit bis deutlich bis nach dem Congress gültig ist.

Generieren des Zertifikats

Die Scripte zum generieren des Zertifikats leben in voc@mngslave.dus.c3voc.de:/home/voc/letsencrypt-cdn-for-34c3. Dort werden in der Datei domains.txt alle Domains benannt, die zum CDN gehörten. Es wird dehydrated verwendet um ein einzelnes Zertifikat für alle diese Domains zu holen. Dazu wird die dns-01 challenge benutzt, da dafür die Hosts selbst nicht angefasst, ja nicht einmal online sein müssen.

Der Key Kle-dns-challenge.34c3.c3voc.de.+163+*.{key,private} wird zur Authorisierung ggü. dem DNS-Server verwendet. Er ist üblicherweise deaktiviert.

Vor dem Congress muss er in /etc/bind/named.conf aktiviert werden in dem diese Blöcke einkommentiert werden und der bind-Service anschließend neu geladen werden muss:

#key "le-dns-challenge.34c3.c3voc.de" {
# algorithm hmac-sha256;
# secret "fNbiQG2VCxBb7K/kTg2K2/8saRAeiYMSmyYIxuFShts=";
#};

# update-policy {
# grant le-dns-challenge.34c3.c3voc.de subdomain c3voc.de txt;
# };

Anschließend kann das Script /home/voc/letsencrypt-cdn-for-34c3/update-cert.sh verwendet werden. Es generiert ein neues Zertifikatr in /home/voc/letsencrypt-cdn-for-34c3/cdn-all-domains/cdn.c3voc.de/{fullchain,chain,privkey,cert}.pem.

Verwenden des Zertifikats

Zum Rollout auf den Hosts muss der Inhalt dieser vier Dateien in das KeePass-File unter ansible/ssl/certs/34c3.cdn.c3voc.de hinterlegt werden. Dazu werden die Textfelder unter Advanced→Additional attributes verwendet. Nach dem Comitten des neuen KeePass-Files nicht vergessen mit ./updatekeepassversion die erforderliche KeePass-Datei-Version im cm zu aktualisieren.

Nun kann im cm in den hostvars der relevanten Hosts der Rollout dieses Fake-Zertifikats durch aktivieren der Property #letsencryptfake: “34c3.cdn.c3voc.de” aktiviert werden.

Ist diese Property gesetzt wird das normale Let's Encrypt-Setup deaktiviert und stattdessen das Zertifikat aus dem KeePass ausgerollt.