#!/bin/sh
set -euC
# nfsn-dns-certbot DOMAIN NAME EMAIL_NAME INSTALLER [CERTBOT_ARG]...
# nfsn-dns-certbot "example.com" "" "" ""
# nfsn-dns-certbot "example.com" "git" "" "apache" --quiet
# Arguments.
domain="$1" ; shift
name="$1" ; shift
email_name="${1:-"hostmaster"}" ; shift
installer="${1:-}" ; shift
# Certbot.
host="${name:+"$name."}$domain"
dir="$(cd "$(dirname "$0")" ; pwd)"
certbot certonly \
--non-interactive \
--email "$email_name@$host" \
--agree-tos \
--manual \
--manual-public-ip-logging-ok \
--manual-auth-hook "$dir/nfsn-dns-certbot-auth" \
--manual-cleanup-hook "$dir/nfsn-dns-certbot-cleanup" \
--preferred-challenges="dns" \
--domains "$host" \
"$@"
if [ -n "$installer" ]
then
certbot install \
--cert-name "$host" \
--installer "$installer" \
certbot enhance \
--non-interactive \
--cert-name "$host" \
--domain "$host" \
--installer "$installer" \
--redirect \
--hsts \
--uir
fi
|