|
@ -1,6 +1,7 @@ |
|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
#!/usr/bin/env sh |
|
|
|
|
|
# |
|
|
#Author: Bjarne Saltbaek |
|
|
#Author: Bjarne Saltbaek |
|
|
#Report Bugs here: https://github.com/acmesh-official/acme.sh |
|
|
|
|
|
|
|
|
#Report Bugs here: https://github.com/acmesh-official/acme.sh/issues/3732 |
|
|
# |
|
|
# |
|
|
# |
|
|
# |
|
|
######## Public functions ##################### |
|
|
######## Public functions ##################### |
|
@ -10,8 +11,11 @@ |
|
|
# cPanel_Username=username |
|
|
# cPanel_Username=username |
|
|
# cPanel_Apitoken=apitoken |
|
|
# cPanel_Apitoken=apitoken |
|
|
# cPanel_Hostname=hostname |
|
|
# cPanel_Hostname=hostname |
|
|
|
|
|
# |
|
|
|
|
|
# Note: the program 'jq' must be availble on your system |
|
|
|
|
|
|
|
|
#Usage: dns_cpanel_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
|
|
|
|
|
|
|
|
# Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
|
|
|
|
|
# Used to add txt record |
|
|
dns_cpanel_add() { |
|
|
dns_cpanel_add() { |
|
|
fulldomain=$1 |
|
|
fulldomain=$1 |
|
|
txtvalue=$2 |
|
|
txtvalue=$2 |
|
@ -26,7 +30,7 @@ dns_cpanel_add() { |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
_debug "First detect the root zone" |
|
|
_debug "First detect the root zone" |
|
|
if ! _get_domain "$fulldomain"; then |
|
|
|
|
|
|
|
|
if ! _get_root "$fulldomain"; then |
|
|
_err "No matching root domain for $fulldomain found" |
|
|
_err "No matching root domain for $fulldomain found" |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
@ -40,8 +44,8 @@ dns_cpanel_add() { |
|
|
return 1 |
|
|
return 1 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#Usage: fulldomain txtvalue |
|
|
|
|
|
#Remove the txt record after validation. |
|
|
|
|
|
|
|
|
# Usage: fulldomain txtvalue |
|
|
|
|
|
# Used to remove the txt record after validation |
|
|
dns_cpanel_rm() { |
|
|
dns_cpanel_rm() { |
|
|
fulldomain=$1 |
|
|
fulldomain=$1 |
|
|
txtvalue=$2 |
|
|
txtvalue=$2 |
|
@ -55,7 +59,7 @@ dns_cpanel_rm() { |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
if ! _get_domain; then |
|
|
|
|
|
|
|
|
if ! _get_root; then |
|
|
_err "No matching root domain for $fulldomain found" |
|
|
_err "No matching root domain for $fulldomain found" |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
@ -79,17 +83,20 @@ dns_cpanel_rm() { |
|
|
_checkcredentials() { |
|
|
_checkcredentials() { |
|
|
cPanel_Username="${cPanel_Username:-$(_readaccountconf_mutable cPanel_Username)}" |
|
|
cPanel_Username="${cPanel_Username:-$(_readaccountconf_mutable cPanel_Username)}" |
|
|
cPanel_Apitoken="${cPanel_Apitoken:-$(_readaccountconf_mutable cPanel_Apitoken)}" |
|
|
cPanel_Apitoken="${cPanel_Apitoken:-$(_readaccountconf_mutable cPanel_Apitoken)}" |
|
|
|
|
|
cPanel_Hostname="${cPanel_Hostname:-$(_readaccountconf_mutable cPanel_Hostname)}" |
|
|
|
|
|
|
|
|
if [ -z "$cPanel_Username" ] || [ -z "$cPanel_Apitoken" ]; then |
|
|
|
|
|
|
|
|
if [ -z "$cPanel_Username" ] || [ -z "$cPanel_Apitoken" ] || [ -z "$cPanel_Hostname" ]; then |
|
|
cPanel_Username="" |
|
|
cPanel_Username="" |
|
|
cPanel_Apitoken="" |
|
|
cPanel_Apitoken="" |
|
|
_err "You haven't specified cPanel username and apitoken yet." |
|
|
|
|
|
|
|
|
cPanel_Hostname="" |
|
|
|
|
|
_err "You haven't specified cPanel username, apitoken and hostname yet." |
|
|
_err "Please add credentials and try again." |
|
|
_err "Please add credentials and try again." |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
#save the credentials to the account conf file. |
|
|
#save the credentials to the account conf file. |
|
|
_saveaccountconf_mutable cPanel_Username "$cPanel_Username" |
|
|
_saveaccountconf_mutable cPanel_Username "$cPanel_Username" |
|
|
_saveaccountconf_mutable cPanel_Apitoken "$cPanel_Apitoken" |
|
|
_saveaccountconf_mutable cPanel_Apitoken "$cPanel_Apitoken" |
|
|
|
|
|
_saveaccountconf_mutable cPanel_Hostname "$cPanel_Hostname" |
|
|
return 0 |
|
|
return 0 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -109,7 +116,7 @@ _myget() { |
|
|
_result=$(_get "$cPanel_Hostname/$1") |
|
|
_result=$(_get "$cPanel_Hostname/$1") |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
_get_domain() { |
|
|
|
|
|
|
|
|
_get_root() { |
|
|
_myget 'json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzones' |
|
|
_myget 'json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzones' |
|
|
_domains=$(echo "$_result" | jq '.cpanelresult.data[]| {zones}| .zones| keys' | sed -e 's/"//g' -e 's/,//g' -e 's/\[//g' -e 's/\]//g' -e '/^$/d' -e 's/[[:space:]]//g') |
|
|
_domains=$(echo "$_result" | jq '.cpanelresult.data[]| {zones}| .zones| keys' | sed -e 's/"//g' -e 's/,//g' -e 's/\[//g' -e 's/\]//g' -e '/^$/d' -e 's/[[:space:]]//g') |
|
|
_debug "_result is: $_result" |
|
|
_debug "_result is: $_result" |
|
|