mirror of
https://github.com/plantroon/acme.sh.git
synced 2024-12-22 13:11:41 +00:00
Merge branch 'dev' into dreamhost_dns
This commit is contained in:
commit
6105d4a4e6
@ -316,6 +316,7 @@ You don't have to do anything manually!
|
|||||||
1. selectel.com(selectel.ru) DNS API
|
1. selectel.com(selectel.ru) DNS API
|
||||||
1. zonomi.com DNS API
|
1. zonomi.com DNS API
|
||||||
1. DreamHost.com API
|
1. DreamHost.com API
|
||||||
|
|
||||||
And:
|
And:
|
||||||
|
|
||||||
1. lexicon DNS API: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
|
1. lexicon DNS API: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api
|
||||||
|
4
acme.sh
4
acme.sh
@ -2763,9 +2763,9 @@ _isRealNginxConf() {
|
|||||||
|
|
||||||
_left="$(sed -n "${_start_nn},99999p" "$2")"
|
_left="$(sed -n "${_start_nn},99999p" "$2")"
|
||||||
_debug2 _left "$_left"
|
_debug2 _left "$_left"
|
||||||
if echo "$_left" | tr "\t" ' ' | grep -n "^ *server *" >/dev/null; then
|
_end="$(echo "$_left" | tr "\t" ' ' | grep -n "^ *server *" | grep -v server_name | _head_n 1)"
|
||||||
_end=$(echo "$_left" | tr "\t" ' ' | grep -n "^ *server *" | _head_n 1)
|
|
||||||
_debug "_end" "$_end"
|
_debug "_end" "$_end"
|
||||||
|
if [ "$_end" ]; then
|
||||||
_end_n=$(echo "$_end" | cut -d : -f 1)
|
_end_n=$(echo "$_end" | cut -d : -f 1)
|
||||||
_debug "_end_n" "$_end_n"
|
_debug "_end_n" "$_end_n"
|
||||||
_seg_n=$(echo "$_left" | sed -n "1,${_end_n}p")
|
_seg_n=$(echo "$_left" | sed -n "1,${_end_n}p")
|
||||||
|
@ -585,7 +585,7 @@ For issues, please report to https://github.com/non7top/acme.sh/issues.
|
|||||||
|
|
||||||
## 31. Use Hurricane Electric
|
## 31. Use Hurricane Electric
|
||||||
|
|
||||||
Hurricane Electric doesn't have an API so just set your login credentials like so:
|
Hurricane Electric (https://dns.he.net/) doesn't have an API so just set your login credentials like so:
|
||||||
|
|
||||||
```
|
```
|
||||||
export HE_Username="yourusername"
|
export HE_Username="yourusername"
|
||||||
|
@ -42,7 +42,26 @@ dns_aws_add() {
|
|||||||
_debug _sub_domain "$_sub_domain"
|
_debug _sub_domain "$_sub_domain"
|
||||||
_debug _domain "$_domain"
|
_debug _domain "$_domain"
|
||||||
|
|
||||||
_aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>UPSERT</Action><ResourceRecordSet><Name>$fulldomain</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords><ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
|
_info "Geting existing records for $fulldomain"
|
||||||
|
if ! aws_rest GET "2013-04-01$_domain_id/rrset" "name=$fulldomain&type=TXT"; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if _contains "$response" "<Name>$fulldomain.</Name>"; then
|
||||||
|
_resource_record="$(echo "$response" | _egrep_o "<ResourceRecords.*</ResourceRecords>" | sed "s/<ResourceRecords>//" | sed "s#</ResourceRecords>##")"
|
||||||
|
_debug "_resource_record" "$_resource_record"
|
||||||
|
else
|
||||||
|
_debug "single new add"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$_resource_record" ] && _contains "$response" "$txtvalue"; then
|
||||||
|
_info "The txt record already exists, skip"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
_debug "Adding records"
|
||||||
|
|
||||||
|
_aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>UPSERT</Action><ResourceRecordSet><Name>$fulldomain</Name><Type>TXT</Type><TTL>300</TTL><ResourceRecords>$_resource_record<ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
|
||||||
|
|
||||||
if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
|
if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
|
||||||
_info "txt record updated success."
|
_info "txt record updated success."
|
||||||
@ -68,7 +87,20 @@ dns_aws_rm() {
|
|||||||
_debug _sub_domain "$_sub_domain"
|
_debug _sub_domain "$_sub_domain"
|
||||||
_debug _domain "$_domain"
|
_debug _domain "$_domain"
|
||||||
|
|
||||||
_aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>DELETE</Action><ResourceRecordSet><ResourceRecords><ResourceRecord><Value>\"$txtvalue\"</Value></ResourceRecord></ResourceRecords><Name>$fulldomain.</Name><Type>TXT</Type><TTL>300</TTL></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
|
_info "Geting existing records for $fulldomain"
|
||||||
|
if ! aws_rest GET "2013-04-01$_domain_id/rrset" "name=$fulldomain&type=TXT"; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if _contains "$response" "<Name>$fulldomain.</Name>"; then
|
||||||
|
_resource_record="$(echo "$response" | _egrep_o "<ResourceRecords.*</ResourceRecords>" | sed "s/<ResourceRecords>//" | sed "s#</ResourceRecords>##")"
|
||||||
|
_debug "_resource_record" "$_resource_record"
|
||||||
|
else
|
||||||
|
_debug "no records exists, skip"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
_aws_tmpl_xml="<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><ChangeBatch><Changes><Change><Action>DELETE</Action><ResourceRecordSet><ResourceRecords>$_resource_record</ResourceRecords><Name>$fulldomain.</Name><Type>TXT</Type><TTL>300</TTL></ResourceRecordSet></Change></Changes></ChangeBatch></ChangeResourceRecordSetsRequest>"
|
||||||
|
|
||||||
if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
|
if aws_rest POST "2013-04-01$_domain_id/rrset/" "" "$_aws_tmpl_xml" && _contains "$response" "ChangeResourceRecordSetsResponse"; then
|
||||||
_info "txt record deleted success."
|
_info "txt record deleted success."
|
||||||
@ -87,7 +119,6 @@ _get_root() {
|
|||||||
p=1
|
p=1
|
||||||
|
|
||||||
if aws_rest GET "2013-04-01/hostedzone"; then
|
if aws_rest GET "2013-04-01/hostedzone"; then
|
||||||
_debug "response" "$response"
|
|
||||||
while true; do
|
while true; do
|
||||||
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
|
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
|
||||||
_debug2 "Checking domain: $h"
|
_debug2 "Checking domain: $h"
|
||||||
@ -236,6 +267,7 @@ aws_rest() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
_ret="$?"
|
_ret="$?"
|
||||||
|
_debug2 response "$response"
|
||||||
if [ "$_ret" = "0" ]; then
|
if [ "$_ret" = "0" ]; then
|
||||||
if _contains "$response" "<ErrorResponse"; then
|
if _contains "$response" "<ErrorResponse"; then
|
||||||
_err "Response error:$response"
|
_err "Response error:$response"
|
||||||
|
@ -36,33 +36,18 @@ dns_cx_add() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
existing_records "$_domain" "$_sub_domain"
|
|
||||||
_debug count "$count"
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
_err "Error get existing records."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$count" = "0" ]; then
|
|
||||||
add_record "$_domain" "$_sub_domain" "$txtvalue"
|
add_record "$_domain" "$_sub_domain" "$txtvalue"
|
||||||
else
|
|
||||||
update_record "$_domain" "$_sub_domain" "$txtvalue"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$?" = "0" ]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#fulldomain
|
#fulldomain txtvalue
|
||||||
dns_cx_rm() {
|
dns_cx_rm() {
|
||||||
fulldomain=$1
|
fulldomain=$1
|
||||||
|
txtvalue=$2
|
||||||
REST_API="$CX_Api"
|
REST_API="$CX_Api"
|
||||||
if _get_root "$fulldomain"; then
|
if _get_root "$fulldomain"; then
|
||||||
record_id=""
|
record_id=""
|
||||||
existing_records "$_domain" "$_sub_domain"
|
existing_records "$_domain" "$_sub_domain" "$txtvalue"
|
||||||
if ! [ "$record_id" = "" ]; then
|
if [ "$record_id" ]; then
|
||||||
_rest DELETE "record/$record_id/$_domain_id" "{}"
|
_rest DELETE "record/$record_id/$_domain_id" "{}"
|
||||||
_info "Deleted record ${fulldomain}"
|
_info "Deleted record ${fulldomain}"
|
||||||
fi
|
fi
|
||||||
@ -89,7 +74,6 @@ existing_records() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if printf "%s" "$response" | grep '"type":"TXT"' >/dev/null; then
|
if printf "%s" "$response" | grep '"type":"TXT"' >/dev/null; then
|
||||||
count=1
|
|
||||||
record_id=$(printf "%s\n" "$seg" | _egrep_o '"record_id":"[^"]*"' | cut -d : -f 2 | tr -d \" | _head_n 1)
|
record_id=$(printf "%s\n" "$seg" | _egrep_o '"record_id":"[^"]*"' | cut -d : -f 2 | tr -d \" | _head_n 1)
|
||||||
_debug record_id "$record_id"
|
_debug record_id "$record_id"
|
||||||
return 0
|
return 0
|
||||||
@ -114,23 +98,6 @@ add_record() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
#update the txt record
|
|
||||||
#Usage: root sub txtvalue
|
|
||||||
update_record() {
|
|
||||||
root=$1
|
|
||||||
sub=$2
|
|
||||||
txtvalue=$3
|
|
||||||
fulldomain="$sub.$root"
|
|
||||||
|
|
||||||
_info "Updating record"
|
|
||||||
|
|
||||||
if _rest PUT "record/$record_id" "{\"domain_id\": $_domain_id, \"host\":\"$_sub_domain\", \"value\":\"$txtvalue\", \"type\":\"TXT\",\"ttl\":600, \"line_id\":1}"; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
#################### Private functions below ##################################
|
#################### Private functions below ##################################
|
||||||
#_acme-challenge.www.domain.com
|
#_acme-challenge.www.domain.com
|
||||||
#returns
|
#returns
|
||||||
|
@ -19,14 +19,16 @@ dns_he_add() {
|
|||||||
_txt_value=$2
|
_txt_value=$2
|
||||||
_info "Using DNS-01 Hurricane Electric hook"
|
_info "Using DNS-01 Hurricane Electric hook"
|
||||||
|
|
||||||
|
HE_Username="${HE_Username:-$(_readaccountconf_mutable HE_Username)}"
|
||||||
|
HE_Password="${HE_Password:-$(_readaccountconf_mutable HE_Password)}"
|
||||||
if [ -z "$HE_Username" ] || [ -z "$HE_Password" ]; then
|
if [ -z "$HE_Username" ] || [ -z "$HE_Password" ]; then
|
||||||
HE_Username=
|
HE_Username=
|
||||||
HE_Password=
|
HE_Password=
|
||||||
_err "No auth details provided. Please set user credentials using the \$HE_Username and \$HE_Password envoronment variables."
|
_err "No auth details provided. Please set user credentials using the \$HE_Username and \$HE_Password envoronment variables."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
_saveaccountconf HE_Username "$HE_Username"
|
_saveaccountconf_mutable HE_Username "$HE_Username"
|
||||||
_saveaccountconf HE_Password "$HE_Password"
|
_saveaccountconf_mutable HE_Password "$HE_Password"
|
||||||
|
|
||||||
# Fills in the $_zone_id
|
# Fills in the $_zone_id
|
||||||
_find_zone "$_full_domain" || return 1
|
_find_zone "$_full_domain" || return 1
|
||||||
@ -62,7 +64,8 @@ dns_he_rm() {
|
|||||||
_full_domain=$1
|
_full_domain=$1
|
||||||
_txt_value=$2
|
_txt_value=$2
|
||||||
_info "Cleaning up after DNS-01 Hurricane Electric hook"
|
_info "Cleaning up after DNS-01 Hurricane Electric hook"
|
||||||
|
HE_Username="${HE_Username:-$(_readaccountconf_mutable HE_Username)}"
|
||||||
|
HE_Password="${HE_Password:-$(_readaccountconf_mutable HE_Password)}"
|
||||||
# fills in the $_zone_id
|
# fills in the $_zone_id
|
||||||
_find_zone "$_full_domain" || return 1
|
_find_zone "$_full_domain" || return 1
|
||||||
_debug "Zone id \"$_zone_id\" will be used."
|
_debug "Zone id \"$_zone_id\" will be used."
|
||||||
|
Loading…
Reference in New Issue
Block a user