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
fb05a42d
Unverified
Commit
fb05a42d
authored
Aug 09, 2020
by
Harald Kapper
Committed by
GitHub
Aug 09, 2020
Browse files
Merge pull request #3 from acmesh-official/dev
sync upstream
parents
a494683b
70b49980
Changes
3
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_azure.sh
View file @
fb05a42d
...
@@ -172,7 +172,7 @@ dns_azure_rm() {
...
@@ -172,7 +172,7 @@ dns_azure_rm() {
_azure_rest GET
"
$acmeRecordURI
"
""
"
$accesstoken
"
_azure_rest GET
"
$acmeRecordURI
"
""
"
$accesstoken
"
timestamp
=
"
$(
_time
)
"
timestamp
=
"
$(
_time
)
"
if
[
"
$_code
"
=
"200"
]
;
then
if
[
"
$_code
"
=
"200"
]
;
then
vlist
=
"
$(
echo
"
$response
"
| _egrep_o
"
\"
value
\"\\
s*:
\\
s*
\\
[
\\
s*
\"
[^
\"
]*
\"\\
s*]"
|
cut
-d
:
-f
2 |
tr
-d
"[]
\"
"
|
grep
-v
"
$txtvalue
"
)
"
vlist
=
"
$(
echo
"
$response
"
| _egrep_o
"
\"
value
\"\\
s*:
\\
s*
\\
[
\\
s*
\"
[^
\"
]*
\"\\
s*]"
|
cut
-d
:
-f
2 |
tr
-d
"[]
\"
"
|
grep
-v
--
"
$txtvalue
"
)
"
values
=
""
values
=
""
comma
=
""
comma
=
""
for
v
in
$vlist
;
do
for
v
in
$vlist
;
do
...
...
dnsapi/dns_dynv6.sh
View file @
fb05a42d
...
@@ -80,7 +80,7 @@ _generate_new_key() {
...
@@ -80,7 +80,7 @@ _generate_new_key() {
_get_domain
()
{
_get_domain
()
{
_full_domain
=
"
$1
"
_full_domain
=
"
$1
"
_debug
"getting domain for
$_full_domain
"
_debug
"getting domain for
$_full_domain
"
if
!
_contains
"
$_full_domain
"
'dynv6.net'
&&
!
_contains
"
$_full_domain
"
'dns.army'
&&
!
_contains
"
$_full_domain
"
'dns.navy'
&&
!
_contains
"
$_full_domain
"
'v6.rocks'
;
then
if
!
_contains
"
$_full_domain
"
'dynv6.net'
&&
!
_contains
"
$_full_domain
"
'dns.army'
&&
!
_contains
"
$_full_domain
"
'dns.navy'
&&
!
_contains
"
$_full_domain
"
'v6.rocks'
;
then
_err
"The hosts does not seem to be a dynv6 host"
_err
"The hosts does not seem to be a dynv6 host"
return
1
return
1
fi
fi
...
...
dnsapi/dns_netlify.sh
0 → 100644
View file @
fb05a42d
#!/usr/bin/env sh
#NETLIFY_ACCESS_TOKEN="xxxx"
NETLIFY_HOST
=
"api.netlify.com/api/v1/"
NETLIFY_URL
=
"https://
$NETLIFY_HOST
"
######## Public functions #####################
#Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_netlify_add
()
{
fulldomain
=
$1
txtvalue
=
$2
NETLIFY_ACCESS_TOKEN
=
"
${
NETLIFY_ACCESS_TOKEN
:-
$(
_readaccountconf_mutable NETLIFY_ACCESS_TOKEN
)
}
"
if
[
-z
"
$NETLIFY_ACCESS_TOKEN
"
]
;
then
NETLIFY_ACCESS_TOKEN
=
""
_err
"Please specify your Netlify Access Token and try again."
return
1
fi
_info
"Using Netlify"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$txtvalue
"
_saveaccountconf_mutable NETLIFY_ACCESS_TOKEN
"
$NETLIFY_ACCESS_TOKEN
"
if
!
_get_root
"
$fulldomain
"
"
$accesstoken
"
;
then
_err
"invalid domain"
return
1
fi
_debug _domain_id
"
$_domain_id
"
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
dnsRecordURI
=
"dns_zones/
$_domain_id
/dns_records"
body
=
"{
\"
type
\"
:
\"
TXT
\"
,
\"
hostname
\"
:
\"
$_sub_domain
\"
,
\"
value
\"
:
\"
$txtvalue
\"
,
\"
ttl
\"
:
\"
10
\"
}"
_netlify_rest POST
"
$dnsRecordURI
"
"
$body
"
"
$NETLIFY_ACCESS_TOKEN
"
_code
=
"
$(
grep
"^HTTP"
"
$HTTP_HEADER
"
| _tail_n 1 |
cut
-d
" "
-f
2 |
tr
-d
"
\\
r
\\
n"
)
"
if
[
"
$_code
"
=
"200"
]
||
[
"
$_code
"
=
'201'
]
;
then
_info
"validation value added"
return
0
else
_err
"error adding validation value (
$_code
)"
return
1
fi
_err
"Not fully implemented!"
return
1
}
#Usage: dns_myapi_rm _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
#Remove the txt record after validation.
dns_netlify_rm
()
{
_info
"Using Netlify"
txtdomain
=
"
$1
"
txt
=
"
$2
"
_debug txtdomain
"
$txtdomain
"
_debug txt
"
$txt
"
_saveaccountconf_mutable NETLIFY_ACCESS_TOKEN
"
$NETLIFY_ACCESS_TOKEN
"
if
!
_get_root
"
$txtdomain
"
"
$accesstoken
"
;
then
_err
"invalid domain"
return
1
fi
_debug _domain_id
"
$_domain_id
"
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
dnsRecordURI
=
"dns_zones/
$_domain_id
/dns_records"
_netlify_rest GET
"
$dnsRecordURI
"
""
"
$NETLIFY_ACCESS_TOKEN
"
_record_id
=
$(
echo
"
$response
"
| _egrep_o
"
\"
type
\"
:
\"
TXT
\"
,[^
\}
]*
\"
value
\"
:
\"
$txt
\"
"
|
head
-n
1 | _egrep_o
"
\"
id
\"
:
\"
[^
\"\}
]*
\"
"
|
cut
-d
:
-f
2 |
tr
-d
\"
)
_debug _record_id
"
$_record_id
"
if
[
"
$_record_id
"
]
;
then
_netlify_rest DELETE
"
$dnsRecordURI
/
$_record_id
"
""
"
$NETLIFY_ACCESS_TOKEN
"
_code
=
"
$(
grep
"^HTTP"
"
$HTTP_HEADER
"
| _tail_n 1 |
cut
-d
" "
-f
2 |
tr
-d
"
\\
r
\\
n"
)
"
if
[
"
$_code
"
=
"200"
]
||
[
"
$_code
"
=
'204'
]
;
then
_info
"validation value removed"
return
0
else
_err
"error removing validation value (
$_code
)"
return
1
fi
return
0
fi
return
1
}
#################### Private functions below ##################################
_get_root
()
{
domain
=
$1
accesstoken
=
$2
i
=
1
p
=
1
_netlify_rest GET
"dns_zones"
""
"
$accesstoken
"
while
true
;
do
h
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
$i
-100
)
_debug2
"Checking domain:
$h
"
if
[
-z
"
$h
"
]
;
then
#not valid
_err
"Invalid domain"
return
1
fi
if
_contains
"
$response
"
"
\"
name
\"
:
\"
$h
\"
"
>
/dev/null
;
then
_domain_id
=
$(
echo
"
$response
"
| _egrep_o
"
\"
[^
\"
]*
\"
,
\"
name
\"
:
\"
$h
"
|
cut
-d
,
-f
1 |
tr
-d
\"
)
if
[
"
$_domain_id
"
]
;
then
if
[
"
$i
"
=
1
]
;
then
#create the record at the domain apex (@) if only the domain name was provided as --domain-alias
_sub_domain
=
"@"
else
_sub_domain
=
$(
echo
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
fi
_domain
=
$h
return
0
fi
return
1
fi
p
=
$i
i
=
$(
_math
"
$i
"
+ 1
)
done
return
1
}
_netlify_rest
()
{
m
=
$1
ep
=
"
$2
"
data
=
"
$3
"
_debug
"
$ep
"
token_trimmed
=
$(
echo
"
$NETLIFY_ACCESS_TOKEN
"
|
tr
-d
'"'
)
export
_H1
=
"Content-Type: application/json"
export
_H2
=
"Authorization: Bearer
$token_trimmed
"
:>
"
$HTTP_HEADER
"
if
[
"
$m
"
!=
"GET"
]
;
then
_debug data
"
$data
"
response
=
"
$(
_post
"
$data
"
"
$NETLIFY_URL$ep
"
""
"
$m
"
)
"
else
response
=
"
$(
_get
"
$NETLIFY_URL$ep
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$ep
"
return
1
fi
_debug2 response
"
$response
"
return
0
}
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