summaryrefslogtreecommitdiffstats
path: root/certrenew
blob: 8d696fae02fcaeb464d2bb59b9457ac23963f003 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash

set -e

main() {
	if [[ ! -d /etc/letsencrypt/live ]]; then
		die "no letsencrypt dir found"
	fi

	if (($#<2)); then
		printf "usage: %s <webroot> <domains ...>\n" "${0##*/}"
		exit 1
	fi

	local webroot=$1; shift;
	local -a domains=("$@")

	local cert="/etc/letsencrypt/live/${domains[0]}/cert.pem"

	# renew if expires within 8 weeks
	if ! openssl x509 -noout -checkend $((8*7*86400)) -in "${cert}"; then
		letsencrypt certonly --email bluewind@xinu.at --agree-tos --renew-by-default --webroot -w "$webroot" "${domains[@]/#/-d }"
	fi

	return 0
}

die() {
	printf "%s\n" "$1" >&2
	exit 1
}

main "$@"