Acme.sh - SSL Zertifikate Verwalten
Vorwort
Seit 2015 bietet die Zertifizierungsstelle (CA) LetsEncrypt kostenlose SSL/TLS Zertifikate an. Diese haben jeweils eine Laufzeit von 90 Tagen und können beliebig viele Hostnamen abdecken, von normaler Domain bis Wildcard kann alles abgedeckt werden. Das Ziel des Projekts ist es, das Web sicherer zu machen und möglichst allen Menschen den Zugang zu kostenlosen Zertifkaten zu ermöglichen.
ACME.sh ist ein Shellscript, welches die Verwaltung eben jener Zertifikate enorm vereinfacht und durch Einbinden von API’s auch weitere Möglichkeiten zum Bezug eröffnet.
Ich benutze Acme.sh seit langer Zeit, da sich jedoch Handhabung des Scripts, als auch die API meines DNS Providers (hier Cloudflare) immer wieder ändern und ich nicht immer alle Beiträge nachträglich editieren möchte, in denen irgendwo ein SSL Zertifikat vorkommt, folgt nun dieser Beitrag.
Installation und Konfiguration von ACME.SH
Installation
Die Installation ist recht simple und kann entweder mit einem Einzeiler abgeschlossen werden, oder durch das Clonen des Repository von Github - beide Varianten sind schnell erledigt:
Einzeiler:
|
|
Bezug aus dem Github Repository:
|
|
In beiden Fällen sollte während der Installation ein Mailkonto angegeben werden, an welches Ablaufmeldungen gesendet werden, sollte eines der Zertifikate bald ablaufen oder es andere (technische) Probleme geben.
Konfiguration
Zuerst setze ich in meinen Installationen immer die Zertifizierungsstelle von LetsEncrypt als Standard ein.
|
|
Dann hinterlege ich die Accountdaten des DNS Providers - in meinem Falle Cloudflare. Hierfür sind zwei Credentials notwendig: Die Account-ID, sowie ein passender Token. Beides wird im folgenden Absatz beschrieben:
Die Account-ID lässt sich im Dashboard unter Übersicht > Konto-ID finden und lässt sich mit einem Klick kopieren.
Die Beantragung des Tokens erfolgt unter Einstellungen - Profil - API-Token. Dort kann ein Neuer Token erstellt werden, als Berechtigung genügt hier die Vorlage zum Zonen-DNS bearbeiten:
Im folgenden Schritt erfolgen dann weitere Konfigurationen:
Schritt 1: Ich empfehle einen eigenen Namen für den Token zu hinterlegen, um später Rückschlüsse auf den Token möglich zu machen.
Schritt 2: Hier besteht die Wahl zwischen Allen Zonen oder Spezifischen Zonen. Meine Empfehlung lautet hier, das ganze so restriktiv wie möglich zu gestalten
Schritt 3: Hier werden nur jene Domains ausgewählt, welche später mit diesem Token / auf dem obigen Server mit SSL Zertifikaten ausgestattet werden sollen.
Im letzten Schritt, Schritt 4, erfolgt die Zusammenfassung bevor der Token ausgegeben wird.
Achtung: Der Token wird nur einmalig angezeigt, sichert diesen unbedingt!
Im letzten Schritt werden die gewonnen Daten noch an ACME.sh übergeben:
|
|
Beantragung neuer Zertifikate
Zuerst muss das passende Verzeichnis erstellt werden, welches später die SSL Zertifikate beinhalten soll, hierfür erstelle ich pro Domain ein eigenes Unterverzeichnis, sowie ein weiteres Unterverzeichnis für RSA oder ECC Zertifikate.
|
|
Danach können folgende Befehle abgesetzt werden, zunächst ein Beispiel für die Beantragung eines RSA SSL Zertifikats für eine Domain, anschließend das gleiche in grün noch einmal mit der ECC Variante:
RSA Zertifikat
|
|
Anschließend werden die soeben erstellten Dateien installiert und der Webserver neu gestartet:
|
|
ECC Zertifikat
|
|
Anschließend werden die soeben erstellten Dateien installiert und der Webserver neu gestartet:
|
|