website/scripts/certbot.bash

68 lines
2.2 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
DOMAIN='targetdisk.io'
CLOUDFLARE_SECRET_INI='/root/.super-secret/cloudflare.ini'
install_certbot() {
[ "$1" == help ] && echo -n "Install certbot via Pip." && return 0
[ $UID -ne 0 ] && die "ERROR: must be root!"
mkdir -p ~/src
pip install --user --upgrade pip
pip install --upgrade certbot
git clone --recurse-submodules \
https://github.com/cloudflare/certbot-dns-cloudflare \
~/src/certbot-dns-cloudflare
pushd ~/src/certbot-dns-cloudflare
python3 setup.py install
popd # ~/src/certbot-dns-cloudflare
}
setup_certbot() {
[ "$1" == help ] && echo -n "Setup certbot with Cloudflare DNS." && return 0
[ $UID -ne 0 ] && die "ERROR: must be root!"
[ -f "$CLOUDFLARE_SECRET_INI" ] \
|| dedcat "ERROR: Please ensure you have a \"$CLOUDFLARE_SECRET_INI\" file!"$'\n' \
$' For more information see here:\n' \
$' https://developers.cloudflare.com/fundamentals/api/get-started/\n\n' \
$' And here:\n' \
' https://labzilla.io/blog/cloudflare-certbot'
certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials "$CLOUDFLARE_SECRET_INI" \
-d "$DOMAIN,*.$DOMAIN" \
--preferred-challenges dns-01
}
# TODO: Check back when Go/Cloudflare get their heads our of their arses
install_cloudflared() {
[ "$1" == help ] && echo -n "Setup cloudflared." && return 0
[ $UID -ne 0 ] && die "ERROR: must be root!"
if [ -e /etc/debian_version ]; then
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg \
| sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update && sudo apt-get install cloudflared
else
# Alpine+Cloudflare+Go made me do this
wget -O /usr/local/bin/cloudflared \
'https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64'
# We really should be checking a checksum/sig before doing this...
# Oh well...
chmod +x /usr/local/bin/cloudflared
# If you hack Cloudflare's GitHub/devs you honestly deserve the keys to my little
# kingdom... ¯\_(ツ)_/¯
fi
}