Setup free Wildcard SSL and automatic renewal
January 29, 2020
Ziel
Wildcard SSL Zertifikat via Let's Encrypt und automatische Erneuerung mit Route 53 DNS API (acme.sh).
TL;DR
code
sudo wget -O - https://get.acme.sh | sh
export AWS_ACCESS_KEY_ID="XXXX"
export AWS_SECRET_ACCESS_KEY="XXXX"
acme.sh --issue --dns dns_aws -d "example.com" -d "*.example.com"
Warum DNS API?
Wildcard Zertifikate brauchen DNS-01 Challenges. Die DNS API sorgt dafuer, dass TXT Records automatisch gesetzt werden, auch fuer Renewal.
Ablauf (Schritt fuer Schritt)
- acme.sh installieren
- AWS IAM User fuer Route 53 anlegen
- AWS Keys als ENV setzen
- Zertifikat per DNS API ausstellen
Beispiel Skript:
code
MAIN_DOMAIN="example.com"
WILDCARD_DOMAIN="*.example.com"
ACCOUNT_EMAIL="webmaster@example.com"
AWS_ACCESS_KEY_ID="XXXX"
AWS_SECRET_ACCESS_KEY="XXXX"
sudo apt-get update -qq
sudo apt-get install -qq socat
sudo wget -O - https://get.acme.sh | sh
acme.sh --upgrade --auto-upgrade
export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}"
export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}"
export ACCOUNT_EMAIL="${ACCOUNT_EMAIL}"
acme.sh --issue --dns dns_aws -d "${MAIN_DOMAIN}" -d "${WILDCARD_DOMAIN}"
Wo liegen die Zertifikate?
Nach Erfolg findest du die Dateien meist unter:
code
~/.acme.sh/example.com/
Wenn du sie kopieren willst:
code
tar -czvf example.com.tar.gz ~/.acme.sh/example.com/
Renewal
acme.sh erneuert automatisch (ca. alle 60 Tage). Update/Auto-Upgrade:
code
acme.sh --upgrade
acme.sh --upgrade --auto-upgrade
acme.sh --upgrade --auto-upgrade 0
Troubleshooting
Wenn acme.sh nicht gefunden wird:
code
source ~/.bashrc