55 lines
1.9 KiB
Bash
Executable file
55 lines
1.9 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
|
|
set -e
|
|
|
|
|
|
export le_dir="/tmp/le/"
|
|
export config_dir="$le_dir/out/config"
|
|
export technitium_token="$TECHNITIUM_API_KEY"
|
|
export certbot_auth="$le_dir/certbot_auth.sh"
|
|
export certbot_cleanup="$le_dir/certbot_cleanup.sh"
|
|
|
|
mkdir $le_dir
|
|
echo "Creating $certbot_auth"
|
|
cat << EOF > $certbot_auth
|
|
#!/usr/bin/env sh
|
|
# Generate API token from DNS web console
|
|
API_TOKEN="$technitium_token"
|
|
|
|
# Create challenge TXT record
|
|
curl "http://technitium-web.technitium.svc.cluster.local:5380/api/zones/records/add?token=\$API_TOKEN&domain=_acme-challenge.\$CERTBOT_DOMAIN&type=TXT&ttl=60&text=\$CERTBOT_VALIDATION"
|
|
|
|
# Sleep to make sure the change has time to propagate from primary to secondary name servers
|
|
sleep 25
|
|
EOF
|
|
|
|
chmod 700 $certbot_auth
|
|
cat $certbot_auth
|
|
|
|
|
|
echo "Creating $certbot_cleanup"
|
|
cat << EOF > $certbot_cleanup
|
|
#!/usr/bin/env sh
|
|
# Generate API token from DNS web console
|
|
API_TOKEN="$technitium_token"
|
|
|
|
# Delete challenge TXT record
|
|
curl "http://technitium-web.technitium.svc.cluster.local:5380/api/zones/records/delete?token=\$API_TOKEN&domain=_acme-challenge.\$CERTBOT_DOMAIN&type=TXT&text=\$CERTBOT_VALIDATION"
|
|
EOF
|
|
|
|
chmod 700 $certbot_cleanup
|
|
cat $certbot_cleanup
|
|
|
|
|
|
echo "Executing certbot renew command"
|
|
certbot certonly --manual --preferred-challenges=dns --email me@viktorbarzin.me --server https://acme-v02.api.letsencrypt.org/directory --agree-tos --manual-auth-hook $certbot_auth --config-dir $config_dir --work-dir $le_dir/workdir --logs-dir $le_dir/logsdir --no-eff-email --manual-cleanup-hook $certbot_cleanup -d viktorbarzin.me -d *.viktorbarzin.me
|
|
|
|
cat $config_dir/live/viktorbarzin.me/fullchain.pem
|
|
cat $config_dir/live/viktorbarzin.me/privkey.pem
|
|
|
|
cp --remove-destination $config_dir/live/viktorbarzin.me/fullchain.pem ./secrets
|
|
cp --remove-destination $config_dir/live/viktorbarzin.me/privkey.pem ./secrets
|
|
|
|
|
|
echo "Done renewing cert. Output certificates stored in ./secrets\n"
|
|
ls ./secrets
|