]>
Commit | Line | Data |
---|---|---|
dd72f763 WE |
1 | #!/usr/bin/env sh |
2 | # | |
3 | #Author: Wolfgang Ebner | |
2ce145f3 FM |
4 | #Author: Sven Neubuaer |
5 | #Report Bugs here: https://github.com/dampfklon/acme.sh | |
6 | # | |
7 | # Usage: | |
8 | # export ACMEDNS_BASE_URL="https://auth.acme-dns.io" | |
9 | # | |
10 | # You can optionally define an already existing account: | |
11 | # | |
12 | # export ACMEDNS_USERNAME="<username>" | |
13 | # export ACMEDNS_PASSWORD="<password>" | |
14 | # export ACMEDNS_SUBDOMAIN="<subdomain>" | |
dd72f763 WE |
15 | # |
16 | ######## Public functions ##################### | |
17 | ||
18 | #Usage: dns_acmedns_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" | |
2ce145f3 | 19 | # Used to add txt record |
dd72f763 WE |
20 | dns_acmedns_add() { |
21 | fulldomain=$1 | |
22 | txtvalue=$2 | |
23 | _info "Using acme-dns" | |
2ce145f3 FM |
24 | _debug "fulldomain $fulldomain" |
25 | _debug "txtvalue $txtvalue" | |
dd72f763 | 26 | |
2ce145f3 | 27 | #for compatiblity from account conf |
dd72f763 | 28 | ACMEDNS_USERNAME="${ACMEDNS_USERNAME:-$(_readaccountconf_mutable ACMEDNS_USERNAME)}" |
2ce145f3 | 29 | _clearaccountconf_mutable ACMEDNS_USERNAME |
dd72f763 | 30 | ACMEDNS_PASSWORD="${ACMEDNS_PASSWORD:-$(_readaccountconf_mutable ACMEDNS_PASSWORD)}" |
2ce145f3 | 31 | _clearaccountconf_mutable ACMEDNS_PASSWORD |
dd72f763 | 32 | ACMEDNS_SUBDOMAIN="${ACMEDNS_SUBDOMAIN:-$(_readaccountconf_mutable ACMEDNS_SUBDOMAIN)}" |
2ce145f3 FM |
33 | _clearaccountconf_mutable ACMEDNS_SUBDOMAIN |
34 | ||
35 | ACMEDNS_BASE_URL="${ACMEDNS_BASE_URL:-$(_readdomainconf ACMEDNS_BASE_URL)}" | |
36 | ACMEDNS_USERNAME="${ACMEDNS_USERNAME:-$(_readdomainconf ACMEDNS_USERNAME)}" | |
37 | ACMEDNS_PASSWORD="${ACMEDNS_PASSWORD:-$(_readdomainconf ACMEDNS_PASSWORD)}" | |
38 | ACMEDNS_SUBDOMAIN="${ACMEDNS_SUBDOMAIN:-$(_readdomainconf ACMEDNS_SUBDOMAIN)}" | |
39 | ||
40 | if [ "$ACMEDNS_BASE_URL" = "" ]; then | |
41 | ACMEDNS_BASE_URL="https://auth.acme-dns.io" | |
42 | fi | |
43 | ||
44 | ACMEDNS_UPDATE_URL="$ACMEDNS_BASE_URL/update" | |
45 | ACMEDNS_REGISTER_URL="$ACMEDNS_BASE_URL/register" | |
dd72f763 | 46 | |
2ce145f3 FM |
47 | if [ -z "$ACMEDNS_USERNAME" ] || [ -z "$ACMEDNS_PASSWORD" ]; then |
48 | response="$(_post "" "$ACMEDNS_REGISTER_URL" "" "POST")" | |
49 | _debug response "$response" | |
50 | ACMEDNS_USERNAME=$(echo "$response" | sed -n 's/^{.*\"username\":[ ]*\"\([^\"]*\)\".*}/\1/p') | |
51 | _debug "received username: $ACMEDNS_USERNAME" | |
52 | ACMEDNS_PASSWORD=$(echo "$response" | sed -n 's/^{.*\"password\":[ ]*\"\([^\"]*\)\".*}/\1/p') | |
53 | _debug "received password: $ACMEDNS_PASSWORD" | |
54 | ACMEDNS_SUBDOMAIN=$(echo "$response" | sed -n 's/^{.*\"subdomain\":[ ]*\"\([^\"]*\)\".*}/\1/p') | |
55 | _debug "received subdomain: $ACMEDNS_SUBDOMAIN" | |
56 | ACMEDNS_FULLDOMAIN=$(echo "$response" | sed -n 's/^{.*\"fulldomain\":[ ]*\"\([^\"]*\)\".*}/\1/p') | |
57 | _info "##########################################################" | |
58 | _info "# Create $fulldomain CNAME $ACMEDNS_FULLDOMAIN DNS entry #" | |
59 | _info "##########################################################" | |
60 | _info "Press enter to continue... " | |
61 | read -r _ | |
dd72f763 WE |
62 | fi |
63 | ||
2ce145f3 FM |
64 | _savedomainconf ACMEDNS_BASE_URL "$ACMEDNS_BASE_URL" |
65 | _savedomainconf ACMEDNS_USERNAME "$ACMEDNS_USERNAME" | |
66 | _savedomainconf ACMEDNS_PASSWORD "$ACMEDNS_PASSWORD" | |
67 | _savedomainconf ACMEDNS_SUBDOMAIN "$ACMEDNS_SUBDOMAIN" | |
dd72f763 WE |
68 | |
69 | export _H1="X-Api-User: $ACMEDNS_USERNAME" | |
70 | export _H2="X-Api-Key: $ACMEDNS_PASSWORD" | |
71 | data="{\"subdomain\":\"$ACMEDNS_SUBDOMAIN\", \"txt\": \"$txtvalue\"}" | |
72 | ||
73 | _debug data "$data" | |
74 | response="$(_post "$data" "$ACMEDNS_UPDATE_URL" "" "POST")" | |
75 | _debug response "$response" | |
76 | ||
77 | if ! echo "$response" | grep "\"$txtvalue\"" >/dev/null; then | |
78 | _err "invalid response of acme-dns" | |
79 | return 1 | |
80 | fi | |
81 | ||
82 | } | |
83 | ||
84 | #Usage: fulldomain txtvalue | |
85 | #Remove the txt record after validation. | |
86 | dns_acmedns_rm() { | |
87 | fulldomain=$1 | |
88 | txtvalue=$2 | |
89 | _info "Using acme-dns" | |
2ce145f3 FM |
90 | _debug "fulldomain $fulldomain" |
91 | _debug "txtvalue $txtvalue" | |
dd72f763 WE |
92 | } |
93 | ||
94 | #################### Private functions below ################################## |