ACME
DESY Certificate Authority
ACME
Per "Automatic Certificate Management Environment" (ACME) lassen sich automatisiert Zertifikate beantragen und erneuern. Das wurde für Let's Encrypt entworfen, wird aber mittlerweile auch von anderen CAs angeboten.
Wir können das über GÉANT TCS benutzen. Da GÉANT TCS die CA aber alle 5 Jahre wechselt, muß das schon korrekt im Systemmanagement (z.B. Puppet) eingebunden werden, sonst gibt es nach dem Wechsel der CA keine neuen Zertifikate mehr. Für die zentralen IT Installationen wendet man sich dafür an die Systeme Gruppe. Von der Verwendung von ACME über GÉANT TCS ohne Support der IT Gruppe wird abgeraten.
Alternativ gibt es Let's Encrypt. Nur hier besteht das Problem des sogenannten Rate Limits. Man darf nur 50 neue Zertifikate pro Woche beantragen. Bestehende dürfen erneuert werden ohne dem Rate Limit zugeschlagen zu werden. Normalerweise reichen 50 Zertifikate pro Woche aus solange sich alle an die Regeln halten. Wichtig ist Tests nur im Let's Encrypt Staging Environment zu machen. Wer im produktiven Environment testet und wiederholt installiert erreicht das Rate Limit für gesamt DESY und alle müssen dann auf neue Zertifikate warten. Das gilt es zu vermeiden. Merke: Wichtig bei Let's Encrypt ist es im Staging Environment zu testen. Erst nachdem alles sauber konfiguriert ist und läuft sollte man sich das Zertifikat vom produktiven Environment ausstellen lassen.
Falls es drängt und Let's Encrypt keine Zertifikate mehr ausstellen möchte, können Zertifikate zur Not auch über GÉANT TCS händisch ausgestellt werden. ACME ist aber in jedem Fall zu bevorzugen, um unnötige Routineaufgaben zu automatisieren.
Um auch für Systeme ohne Freischaltung Let's Encrypt Zertifikate beantragen zu können, gibt es acme-qip. Das ist ein simples Tool welches zum einen GetSSL vorkonfiguriert und über das im QIP das sogenannte "DNS Challenge Token" eingetragen wird. Let's Encrypt verifiziert den Zertifikatsantrag dann über unseren Nameserver statt über eine http Verbindung.
Durch den Aufruf von Setup z.B. per "acme-qip setup example.desy.de example-admins@desy.de" wird in ~/.getssl eine einfache Konfiguration erzeugt und eine Schritt für Schritt Anleitung ausgegeben mit der man zu einem Let's Encrypt Zertifikat gelangt.
Leute, die diese Anleitung nicht oder nur flüchtig gelesen bzw. Schritte übersprungen haben sind über folgende Punkte gestolpert:
Es gibt zwei getssl.cfg Dateien. Eine in ~/.getssl/ und eine in einem Unterverzeichnis mit dem Namen des Systems, in unserem Beispiel also in ~/.getssl/example.desy.de/. Üblicherweise muß man nur letztere Config anpassen. Wer Variablen aus der Anleitung nicht findet sollte prüfen ob die richtige Datei editiert wird.
SANS (ein oder mehrere "Subject Alternative Name[s]") ist eine mit Leerzeichen getrennte Liste der Aliasse die mit im Zertifikat aufgenommen werden sollen. Sofern auf dem System ein hib Binary im Pfad liegt, wird von acme-qip während des Setups diese SANS Variable automatisch mit allen der HIB bekannten Aliasse vorkonfiguriert. Frisch im QIP hinzugefügte Aliasse sind unter Umständen der HIB noch nicht bekannt und müßten in dem Fall händisch nachgetragen werden.
GetSSL beantragt die Zertifikate bei Let's Encrypt, nicht acme-qip. GetSSL benutzt dafür acme-qip <add|del>, um im DESY Nameserver ein "DNS Challenge Token" einzutragen. Händisch muß man nur "acme-qip setup ..." aufrufen, GetSSL ruft im Anschluß daran "acme-qip <add|del> ..." auf.
Zertifikate des Staging Environments werden im Browser als nicht vertrauenswürdig angezeigt. Der Browser ist erst dann zufrieden, wenn die Anleitung bis zum Schluß befolgt wurde, wer vorher aufhört hat ein Test- und kein produktives Zertifikat.