aboutsummaryrefslogtreecommitdiffstats
path: root/http.sh
blob: 0ae034ed09d575e4611186ffda3a11cb75efb6bb (plain) (blame)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#! /bin/sh
# This source code is released into the public domain.

. /usr/local/share/lfacme/init.sh

# begin, done or failed
ACTION=$1
# ACME method, must be http-01.
METHOD=$2
# The full domain name we're authorising.
DOMAIN=$3
# Token name.
TOKEN=$4
# The token value we need to create.
AUTH=$5

if [ "$#" -ne 5 ]; then
	_fatal "missing arguments"
fi

if [ "$METHOD" != "http-01" ]; then
	exit 1
fi

if [ -z "$ACME_HTTP_CHALLENGE_DIR" ]; then
	_fatal "must set ACME_HTTP_CHALLENGE_DIR"
fi

if ! [ -d "$ACME_HTTP_CHALLENGE_DIR" ]; then
	_fatal "missing $ACME_HTTP_CHALLENGE_DIR"
fi

_file="${ACME_HTTP_CHALLENGE_DIR}/${TOKEN}"

case "$ACTION" in
	begin)
		_verbose "creating validation token %s" "$_file"
		echo "$AUTH" >"$_file"
		exit $?
		;;

	done|failed)
		_verbose "deleting validation token %s" "$_file"
		rm -f "$_file"
		exit $?
		;;

	*)
		_fatal "unknown action: %s" "$ACTION"
		;;
esac