Browse Source
Added Selfhost DNS API
+ShellCheck
+ACME v2 compatible
Example:
- Fist create 2 new TXT records on _acme-challenge.example.com
- Now note the ID in (...) from the edit page behind "_acme-challenge.example.com"
export SELFHOSTDNS_USERNAME=myname
export SELFHOSTDNS_PASSWORD=mypass
export SELFHOSTDNS_RID=id_of_txt_record
export SELFHOSTDNS_RID2=id_of_second_txt_record
acme.sh --issue -d example.com --dns dns_selfhost
pull/3873/head
Marvo2011
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
55 additions and
0 deletions
dnsapi/dns_selfhost.sh
@ -0,0 +1,55 @@
#!/usr/bin/env sh
#
# Author: Marvin Edeler
# Report Bugs here: https://github.com/Marvo2011/acme.sh/issues/1
dns_selfhost_add( ) {
domain = $1
txt = $2
_info "Calling acme-dns on selfhost"
_debug fulldomain " $domain "
_debug txtvalue " $txt "
SELFHOSTDNS_UPDATE_URL = "https://selfhost.de/cgi-bin/api.pl"
SELFHOSTDNS_USERNAME = " ${ SELFHOSTDNS_USERNAME :- $( _readaccountconf_mutable SELFHOSTDNS_USERNAME) } "
SELFHOSTDNS_PASSWORD = " ${ SELFHOSTDNS_PASSWORD :- $( _readaccountconf_mutable SELFHOSTDNS_PASSWORD) } "
SELFHOSTDNS_RID = " ${ SELFHOSTDNS_RID :- $( _readaccountconf_mutable SELFHOSTDNS_RID) } "
SELFHOSTDNS_RID2 = " ${ SELFHOSTDNS_RID2 :- $( _readaccountconf_mutable SELFHOSTDNS_RID2) } "
SELFHOSTDNS_LAST_SLOT = " $( _readaccountconf_mutable SELFHOSTDNS_LAST_SLOT) "
if test -z " $SELFHOSTDNS_LAST_SLOT " ; then
SELFHOSTDNS_LAST_SLOT = 1
fi
_saveaccountconf_mutable SELFHOSTDNS_USERNAME " $SELFHOSTDNS_USERNAME "
_saveaccountconf_mutable SELFHOSTDNS_PASSWORD " $SELFHOSTDNS_PASSWORD "
_saveaccountconf_mutable SELFHOSTDNS_RID " $SELFHOSTDNS_RID "
_saveaccountconf_mutable SELFHOSTDNS_RID2 " $SELFHOSTDNS_RID2 "
if [ $SELFHOSTDNS_LAST_SLOT = "2" ] ; then
rid = $SELFHOSTDNS_RID
SELFHOSTDNS_LAST_SLOT = 1
else
rid = $SELFHOSTDNS_RID2
SELFHOSTDNS_LAST_SLOT = 2
fi
_saveaccountconf_mutable SELFHOSTDNS_LAST_SLOT " $SELFHOSTDNS_LAST_SLOT "
_info " Trying to add $txt on selfhost for rid: $rid "
data = " ?username= $SELFHOSTDNS_USERNAME &password= $SELFHOSTDNS_PASSWORD &rid= $rid &content= $txt "
response = " $( _get " $SELFHOSTDNS_UPDATE_URL $data " ) "
if ! echo " $response " | grep "200 OK" >/dev/null; then
_err "Invalid response of acme-dns for selfhost"
return 1
fi
}
dns_acmedns_rm( ) {
domain = $1
txt = $2
_debug fulldomain " $domain "
_debug txtvalue " $txt "
}