Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
6105d4a4
Unverified
Commit
6105d4a4
authored
Feb 13, 2018
by
Martin Donlon
Committed by
GitHub
Feb 13, 2018
Browse files
Merge branch 'dev' into dreamhost_dns
parents
84649e9d
3c394f08
Changes
6
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
6105d4a4
...
@@ -316,6 +316,7 @@ You don't have to do anything manually!
...
@@ -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
...
...
acme.sh
View file @
6105d4a4
...
@@ -2763,9 +2763,9 @@ _isRealNginxConf() {
...
@@ -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"
)
...
...
dnsapi/README.md
View file @
6105d4a4
...
@@ -585,7 +585,7 @@ For issues, please report to https://github.com/non7top/acme.sh/issues.
...
@@ -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"
...
...
dnsapi/dns_aws.sh
View file @
6105d4a4
...
@@ -42,7 +42,26 @@ dns_aws_add() {
...
@@ -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() {
...
@@ -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() {
...
@@ -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() {
...
@@ -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
"
...
...
dnsapi/dns_cx.sh
View file @
6105d4a4
...
@@ -36,33 +36,18 @@ dns_cx_add() {
...
@@ -36,33 +36,18 @@ dns_cx_add() {
return
1
return
1
fi
fi
existing_records
"
$_domain
"
"
$_sub_domain
"
add_record
"
$_domain
"
"
$_sub_domain
"
"
$txtvalue
"
_debug count
"
$count
"
if
[
"
$?
"
!=
"0"
]
;
then
_err
"Error get existing records."
return
1
fi
if
[
"
$count
"
=
"0"
]
;
then
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() {
...
@@ -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() {
...
@@ -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
...
...
dnsapi/dns_he.sh
View file @
6105d4a4
...
@@ -19,14 +19,16 @@ dns_he_add() {
...
@@ -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() {
...
@@ -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."
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment