Bei meinen Projekten mit traefik kam es vor, dass man ein Zertifikat und einen priv. Schlüssel aus der Traefik Datei acme.json extrahieren muss, um sie für andere Zwecke zu verwenden. In meinem Fall musste ich ein Zertifikat für eine bestehende Domain abrufen und für meinen Mailserver verwenden.
Es gibt eine Reihe komplexer Beispiele zum Auslesen aller Zertifikate und das offizielle Tool traefik-cert-dumper. Das ganze ist aber eher kompliziert.
Man kann stattdessen auch nur das JSON-Tool jq (jq) in einem Einzeiler verwenden.
Falls jq nicht installiert ist zunächst installieren mit:
sudo apt update;
sudo apt jq;
Codeschnipsel Zertifikatsexport
jq -r '.defaut.Certificates[] | select(.domain.main==\"beispiel.com") | .certificate' /data/acme.json | base64 -d > /out/tls_cert.pem
Man extrahiert as Zertifikat für die Domain beispiel.com, wandelt den Output mit base64 um und schreibt ihn in eine Ausgabedatei.
Codeschnipsel Schlüsselexport
Wenn man den privaten Schlüssel extrahieren möchte lautet der Befehl entsprechend:
jq -r '.defaut.Certificates[] | select(.domain.main==\"'beispiel.com'\") | .key' /data/acme.json | base64 -d > /out/tls_key.key