NaN Richtig, man kann problemlos die DNS-Challenge auf eine Alternativdomain auslagern. Ich sehe hier beim TO aber gar keine Anforderung dafür?
Hatte ich stellenweise aber auch schon genutzt, ist wirklich sehr praktisch. Beispielsweise wenn Domain1 keine API anbietet, dafür aber Domain2. Oder die Zonen unterschiedlich gehandhabt werden.
Aljoscha Gern, hier mal Auszüge meiner History der wichtigsten Befehle mit Kommentaren für dich:
# User für acme.sh anlegen, da der Client nicht unter root laufen sollte:
sudo adduser letsencrypt
# zum neuen User wechseln:
sudo su - letsencrypt
# acme.sh herunterladen
# Achtung: es empfiehlt sich das Script vorher einmal anzuschauen (und zu verstehen!)
wget https://get.acme.sh -O acme.sh
less acme.sh
chmod +x acme.sh
# acme.sh installieren:
# Mail für renewal Benachrichtigungen
./acme.sh --install --accountemail "meine@mailadresse.ente"
# einmal die shell neu öffnen
exit
# Default CA von ZeroSSL zu Lets Encrypt ändern:
# optional, man könnte dies mit jedem neuen Antrag auch manuell angeben, oder eben hier als Vorgabe hinterlegen
acme.sh --set-default-ca --server letsencrypt
# Netcup Credentials einmalig angeben, wird danach in der acme.sh Config gespeichert:
# API Zugänge können kostenlos im CCP angelegt werden:
# Siehe Wiki: https://helpcenter.netcup.com/de/wiki/general/unsere-api#authentifizierung
export NC_Apikey="HierKommtDerNetcupApiKeyRein"
export NC_Apipw="HierKommtDasApiPasswortRein"
export NC_CID="12345"
# Testzertifikat per Netcup-DNS API anfordern
# für domain.ente und *.domain.ente
# '--test' sorgt für einen Testdurchlauf mit der Lets Encrypt Staging CA
# Vorteil: hier gibt es kein Rate Limit und man kann solange probieren, bis es alles getestet ist
# erst wenn alles klappt '--test' weglassen und danach ein gültiges Zertifikat anfordern:
acme.sh --issue \
-d 'domain.ente' \
-d '*.domain.ente' \
--dns dns_netcup \
--dnssleep 630 \
--keylength 4096 \
--key-file /etc/letsencrypt/mycert/key.pem \
--ca-file /etc/letsencrypt/mycert/ca.pem \
--cert-file /etc/letsencrypt/mycert/cert.pem \
--fullchain-file /etc/letsencrypt/mycert/fullchain.pem \
--reloadcmd "sudo /bin/systemctl reload nginx.service" \
--test
# Test-Zertifikat löschen:
acme.sh --remove -d 'domain.ente'
# gültiges Zertifikat anfordern:
acme.sh --issue \
-d 'domain.ente' \
-d '*.domain.ente' \
--dns dns_netcup \
--dnssleep 630 \
--keylength 4096 \
--key-file /etc/letsencrypt/mycert/key.pem \
--ca-file /etc/letsencrypt/mycert/ca.pem \
--cert-file /etc/letsencrypt/mycert/cert.pem \
--fullchain-file /etc/letsencrypt/mycert/fullchain.pem \
--reloadcmd "sudo /bin/systemctl reload nginx.service"
Alles anzeigen
Pfade und reloadcmd sind natürlich den eigenen Bedürfnissen anzupassen. Hier handelt es sich wie man sieht um ein Zertifikat für den Webserver nginx, in dessen SSL-Config ich auf die Zertifikate verweise.