Wenn ich mit @Nico über Let's Encrypt und den certbot unterhalte, ich habe da schon länger ein Berechtigungsproblem, kommt immer ganz trocken acme.sh
Ok, dann beschäftige ich mich mal kurz damit.
Voraussetzungen
apt install socat git
Zertifikate werden von Let's Encrypt abgeholt.
Installation
git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install
Zertifikat registrieren
root@:~# acme.sh --server letsencrypt --standalone --issue -d example.com
[Sun 31 Jul 2022 08:52:03 AM CEST] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sun 31 Jul 2022 08:52:03 AM CEST] Standalone mode.
[Sun 31 Jul 2022 08:52:03 AM CEST] Single domain='example.com'
[Sun 31 Jul 2022 08:52:03 AM CEST] Getting domain auth token for each domain
[Sun 31 Jul 2022 08:52:05 AM CEST] Getting webroot for domain='example.com'
[Sun 31 Jul 2022 08:52:05 AM CEST] Verifying: example.com
[Sun 31 Jul 2022 08:52:05 AM CEST] Standalone mode server
[Sun 31 Jul 2022 08:52:07 AM CEST] Pending, The CA is processing your order, please just wait. (1/30)
[Sun 31 Jul 2022 08:52:10 AM CEST] Success
[Sun 31 Jul 2022 08:52:10 AM CEST] Verify finished, start to sign.
[Sun 31 Jul 2022 08:52:10 AM CEST] Lets finalize the order.
[Sun 31 Jul 2022 08:52:10 AM CEST] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/xxxxxx/xxxxxxx'
[Sun 31 Jul 2022 08:52:11 AM CEST] Downloading cert.
[Sun 31 Jul 2022 08:52:11 AM CEST] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/xxxxxxxxxxxxxxxxxxx'
[Sun 31 Jul 2022 08:52:12 AM CEST] Cert success.
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
[Sun 31 Jul 2022 08:52:12 AM CEST] Your cert is in: /root/.acme.sh/example.com/example.com.cer
[Sun 31 Jul 2022 08:52:12 AM CEST] Your cert key is in: /root/.acme.sh/example.com/example.com.key
[Sun 31 Jul 2022 08:52:12 AM CEST] The intermediate CA cert is in: /root/.acme.sh/example.com/ca.cer
[Sun 31 Jul 2022 08:52:12 AM CEST] And the full chain certs is there: /root/.acme.sh/example.com/fullchain.cer
Zertifikat installieren
root@:~/.acme.sh# acme.sh --install-cert -d example.com --cert-file /path/cert.pem --key-file /path/key.pem --fullchain-file path/fullchain.pem --reloadcmd "systemctl restart server.service"
Dabei sind ein paar Dinge wichtig. Die originalen Zertifikatsdateien soll man nicht benutzen, dazu gibt es den --install-cert Befehl.
Die Benutzerrechte des Zielordners werden beibehalten!
Dienst oder Webhost anpassen
Das ist ein Beispiel, wie ich den REST-Server von Restic starte. Auskommentiert ist vorher, die Zeile danach mit den Zertifikaten die von acme.sh erzeugt wurden.
#ExecStart=/usr/local/bin/rest-server --private-repos --tls --tls-cert /etc/letsencrypt/live/example.com/fullchain.pem --tls-key /etc/letsencrypt/live/example.com/privkey.pem --path /mnt/rest-server
ExecStart=/usr/local/bin/rest-server --private-repos --tls --tls-cert /path/example.com/fullchain.pem --tls-key /pace/example.com/key.pem --path /mnt/rest-server
Done!
@Nico Danke 