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
7a30cb9d
Unverified
Commit
7a30cb9d
authored
Feb 11, 2020
by
neil
Committed by
GitHub
Feb 11, 2020
Browse files
Merge branch 'dev' into all-inkl-kasserver-dns-script
parents
1c4b8319
3cdc523d
Changes
31
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_miab.sh
View file @
7a30cb9d
...
...
@@ -10,7 +10,7 @@
# used to communicate with the MailinaBox Custom DNS API
# Report Bugs here:
# https://github.com/billgertz/MIAB_dns_api (for dns_miab.sh)
# https://github.com/
Neilpang
/acme.sh (for acme.sh)
# https://github.com/
acmesh-official
/acme.sh (for acme.sh)
#
######## Public functions #####################
...
...
dnsapi/dns_misaka.sh
0 → 100755
View file @
7a30cb9d
#!/usr/bin/env sh
# bug reports to support+acmesh@misaka.io
# based on dns_nsone.sh by dev@1e.ca
#
#Misaka_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
#
Misaka_Api
=
"https://dnsapi.misaka.io/dns"
######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_misaka_add
()
{
fulldomain
=
$1
txtvalue
=
$2
if
[
-z
"
$Misaka_Key
"
]
;
then
Misaka_Key
=
""
_err
"You didn't specify misaka.io dns api key yet."
_err
"Please create you key and try again."
return
1
fi
#save the api key and email to the account conf file.
_saveaccountconf Misaka_Key
"
$Misaka_Key
"
_debug
"checking root zone [
$fulldomain
]"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
_debug
"Getting txt records"
_misaka_rest GET
"zones/
${
_domain
}
/recordsets?search=
${
_sub_domain
}
"
if
!
_contains
"
$response
"
"
\"
results
\"
:"
;
then
_err
"Error"
return
1
fi
count
=
$(
printf
"%s
\n
"
"
$response
"
| _egrep_o
"
\"
name
\"
:
\"
$_sub_domain
\"
,[^{]*
\"
type
\"
:
\"
TXT
\"
"
|
wc
-l
|
tr
-d
" "
)
_debug count
"
$count
"
if
[
"
$count
"
=
"0"
]
;
then
_info
"Adding record"
if
_misaka_rest PUT
"zones/
${
_domain
}
/recordsets/
${
_sub_domain
}
/TXT"
"{
\"
records
\"
:[{
\"
value
\"
:
\"\\\"
$txtvalue
\\\"\"
}],
\"
filters
\"
:[],
\"
ttl
\"
:1}"
;
then
_debug response
"
$response
"
if
_contains
"
$response
"
"
$_sub_domain
"
;
then
_info
"Added"
return
0
else
_err
"Add txt record error."
return
1
fi
fi
_err
"Add txt record error."
else
_info
"Updating record"
_misaka_rest POST
"zones/
${
_domain
}
/recordsets/
${
_sub_domain
}
/TXT?append=true"
"{
\"
records
\"
: [{
\"
value
\"
:
\"\\\"
$txtvalue
\\\"\"
}],
\"
ttl
\"
:1}"
if
[
"
$?
"
=
"0"
]
&&
_contains
"
$response
"
"
$_sub_domain
"
;
then
_info
"Updated!"
#todo: check if the record takes effect
return
0
fi
_err
"Update error"
return
1
fi
}
#fulldomain
dns_misaka_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
_debug
"Getting txt records"
_misaka_rest GET
"zones/
${
_domain
}
/recordsets?search=
${
_sub_domain
}
"
count
=
$(
printf
"%s
\n
"
"
$response
"
| _egrep_o
"
\"
name
\"
:
\"
$_sub_domain
\"
,[^{]*
\"
type
\"
:
\"
TXT
\"
"
|
wc
-l
|
tr
-d
" "
)
_debug count
"
$count
"
if
[
"
$count
"
=
"0"
]
;
then
_info
"Don't need to remove."
else
if
!
_misaka_rest DELETE
"zones/
${
_domain
}
/recordsets/
${
_sub_domain
}
/TXT"
;
then
_err
"Delete record error."
return
1
fi
_contains
"
$response
"
""
fi
}
#################### Private functions below ##################################
#_acme-challenge.www.domain.com
#returns
# _sub_domain=_acme-challenge.www
# _domain=domain.com
# _domain_id=sdjkglgdfewsdfg
_get_root
()
{
domain
=
$1
i
=
2
p
=
1
if
!
_misaka_rest GET
"zones?limit=1000"
;
then
return
1
fi
while
true
;
do
h
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
$i
-100
)
_debug h
"
$h
"
if
[
-z
"
$h
"
]
;
then
#not valid
return
1
fi
if
_contains
"
$response
"
"
\"
name
\"
:
\"
$h
\"
"
;
then
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
"
$h
"
return
0
fi
p
=
$i
i
=
$(
_math
"
$i
"
+ 1
)
done
return
1
}
_misaka_rest
()
{
m
=
$1
ep
=
"
$2
"
data
=
"
$3
"
_debug
"
$ep
"
export
_H1
=
"Content-Type: application/json"
export
_H2
=
"User-Agent: acme.sh/
$VER
misaka-dns-acmesh/20191213"
export
_H3
=
"Authorization: Token
$Misaka_Key
"
if
[
"
$m
"
!=
"GET"
]
;
then
_debug data
"
$data
"
response
=
"
$(
_post
"
$data
"
"
$Misaka_Api
/
$ep
"
""
"
$m
"
)
"
else
response
=
"
$(
_get
"
$Misaka_Api
/
$ep
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$ep
"
return
1
fi
_debug2 response
"
$response
"
return
0
}
dnsapi/dns_myapi.sh
View file @
7a30cb9d
...
...
@@ -7,11 +7,11 @@
#returns 0 means success, otherwise error.
#
#Author: Neilpang
#Report Bugs here: https://github.com/
Neilpang
/acme.sh
#Report Bugs here: https://github.com/
acmesh-official
/acme.sh
#
######## Public functions #####################
# Please Read this guide first: https://github.com/
Neilpang
/acme.sh/wiki/DNS-API-Dev-Guide
# Please Read this guide first: https://github.com/
acmesh-official
/acme.sh/wiki/DNS-API-Dev-Guide
#Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_myapi_add
()
{
...
...
dnsapi/dns_nic.sh
View file @
7a30cb9d
#!/usr/bin/env sh
#
#NIC_
Token="sdfsdfsdfljlbjkljlkjsdfoiwjedfglgkdlfgkfgldfkg"
#
#NIC_
ClientID='0dc0xxxxxxxxxxxxxxxxxxxxxxxxce88'
#
NIC_ClientSecret='3LTtxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnuW8'
#NIC_Username="000000/NIC-D"
#NIC_Password="xxxxxxx"
NIC_Api
=
"https://api.nic.ru"
...
...
@@ -13,22 +12,7 @@ dns_nic_add() {
fulldomain
=
"
${
1
}
"
txtvalue
=
"
${
2
}
"
NIC_Token
=
"
${
NIC_Token
:-
$(
_readaccountconf_mutable NIC_Token
)
}
"
NIC_Username
=
"
${
NIC_Username
:-
$(
_readaccountconf_mutable NIC_Username
)
}
"
NIC_Password
=
"
${
NIC_Password
:-
$(
_readaccountconf_mutable NIC_Password
)
}
"
if
[
-z
"
$NIC_Token
"
]
||
[
-z
"
$NIC_Username
"
]
||
[
-z
"
$NIC_Password
"
]
;
then
NIC_Token
=
""
NIC_Username
=
""
NIC_Password
=
""
_err
"You must export variables: NIC_Token, NIC_Username and NIC_Password"
return
1
fi
_saveaccountconf_mutable NIC_Customer
"
$NIC_Token
"
_saveaccountconf_mutable NIC_Username
"
$NIC_Username
"
_saveaccountconf_mutable NIC_Password
"
$NIC_Password
"
if
!
_nic_get_authtoken
"
$NIC_Username
"
"
$NIC_Password
"
"
$NIC_Token
"
;
then
if
!
_nic_get_authtoken save
;
then
_err
"get NIC auth token failed"
return
1
fi
...
...
@@ -59,18 +43,7 @@ dns_nic_rm() {
fulldomain
=
"
${
1
}
"
txtvalue
=
"
${
2
}
"
NIC_Token
=
"
${
NIC_Token
:-
$(
_readaccountconf_mutable NIC_Token
)
}
"
NIC_Username
=
"
${
NIC_Username
:-
$(
_readaccountconf_mutable NIC_Username
)
}
"
NIC_Password
=
"
${
NIC_Password
:-
$(
_readaccountconf_mutable NIC_Password
)
}
"
if
[
-z
"
$NIC_Token
"
]
||
[
-z
"
$NIC_Username
"
]
||
[
-z
"
$NIC_Password
"
]
;
then
NIC_Token
=
""
NIC_Username
=
""
NIC_Password
=
""
_err
"You must export variables: NIC_Token, NIC_Username and NIC_Password"
return
1
fi
if
!
_nic_get_authtoken
"
$NIC_Username
"
"
$NIC_Password
"
"
$NIC_Token
"
;
then
if
!
_nic_get_authtoken
;
then
_err
"get NIC auth token failed"
return
1
fi
...
...
@@ -103,17 +76,64 @@ dns_nic_rm() {
#################### Private functions below ##################################
#_nic_get_auth_elements [need2save]
_nic_get_auth_elements
()
{
_need2save
=
$1
NIC_ClientID
=
"
${
NIC_ClientID
:-
$(
_readaccountconf_mutable NIC_ClientID
)
}
"
NIC_ClientSecret
=
"
${
NIC_ClientSecret
:-
$(
_readaccountconf_mutable NIC_ClientSecret
)
}
"
NIC_Username
=
"
${
NIC_Username
:-
$(
_readaccountconf_mutable NIC_Username
)
}
"
NIC_Password
=
"
${
NIC_Password
:-
$(
_readaccountconf_mutable NIC_Password
)
}
"
## for backward compatibility
if
[
-z
"
$NIC_ClientID
"
]
||
[
-z
"
$NIC_ClientSecret
"
]
;
then
NIC_Token
=
"
${
NIC_Token
:-
$(
_readaccountconf_mutable NIC_Token
)
}
"
_debug NIC_Token
"
$NIC_Token
"
if
[
-n
"
$NIC_Token
"
]
;
then
_two_values
=
"
$(
echo
"
${
NIC_Token
}
"
| _dbase64
)
"
_debug _two_values
"
$_two_values
"
NIC_ClientID
=
$(
echo
"
$_two_values
"
|
cut
-d
':'
-f1
)
NIC_ClientSecret
=
$(
echo
"
$_two_values
"
|
cut
-d
':'
-f2-
)
_debug restored_NIC_ClientID
"
$NIC_ClientID
"
_debug restored_NIC_ClientSecret
"
$NIC_ClientSecret
"
fi
fi
if
[
-z
"
$NIC_ClientID
"
]
||
[
-z
"
$NIC_ClientSecret
"
]
||
[
-z
"
$NIC_Username
"
]
||
[
-z
"
$NIC_Password
"
]
;
then
NIC_ClientID
=
""
NIC_ClientSecret
=
""
NIC_Username
=
""
NIC_Password
=
""
_err
"You must export variables: NIC_ClientID, NIC_ClientSecret, NIC_Username and NIC_Password"
return
1
fi
if
[
"
$_need2save
"
]
;
then
_saveaccountconf_mutable NIC_ClientID
"
$NIC_ClientID
"
_saveaccountconf_mutable NIC_ClientSecret
"
$NIC_ClientSecret
"
_saveaccountconf_mutable NIC_Username
"
$NIC_Username
"
_saveaccountconf_mutable NIC_Password
"
$NIC_Password
"
fi
NIC_BasicAuth
=
$(
printf
"%s:%s"
"
${
NIC_ClientID
}
"
"
${
NIC_ClientSecret
}
"
| _base64
)
_debug NIC_BasicAuth
"
$NIC_BasicAuth
"
}
#_nic_get_authtoken [need2save]
_nic_get_authtoken
()
{
username
=
"
$1
"
password
=
"
$2
"
token
=
"
$3
"
_need2save
=
$1
if
!
_nic_get_auth_elements
"
$_need2save
"
;
then
return
1
fi
_info
"Getting NIC auth token"
export
_H1
=
"Authorization: Basic
$
token
"
export
_H1
=
"Authorization: Basic
$
{
NIC_BasicAuth
}
"
export
_H2
=
"Content-Type: application/x-www-form-urlencoded"
res
=
$(
_post
"grant_type=password&username=
$
u
sername
&password=
$
p
assword
&scope=%28GET%7CPUT%7CPOST%7CDELETE%29%3A%2Fdns-master%2F.%2B"
"
$NIC_Api
/oauth/token"
""
"POST"
)
res
=
$(
_post
"grant_type=password&username=
$
{
NIC_U
sername
}
&password=
$
{
NIC_P
assword
}
&scope=%28GET%7CPUT%7CPOST%7CDELETE%29%3A%2Fdns-master%2F.%2B"
"
$NIC_Api
/oauth/token"
""
"POST"
)
if
_contains
"
$res
"
"access_token"
;
then
_auth_token
=
$(
printf
"%s"
"
$res
"
|
cut
-d
,
-f2
|
tr
-d
"
\"
"
|
sed
"s/access_token://"
)
_info
"Token received"
...
...
@@ -146,7 +166,7 @@ _get_root() {
if
_contains
"
$_all_domains
"
"^
$h
$"
;
then
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
$h
_service
=
$(
printf
"%s"
"
$response
"
|
grep
"
$_domain
"
|
sed
-r
"s/.*service=
\"
(.*)
\"
.*
$/
\1
/"
)
_service
=
$(
printf
"%s"
"
$response
"
|
grep
"idn-name=
\
"
$_domain
\"
"
|
sed
-r
"s/.*service=
\"
(.*)
\"
.*
$/
\1
/"
)
return
0
fi
p
=
"
$i
"
...
...
dnsapi/dns_openprovider.sh
View file @
7a30cb9d
...
...
@@ -3,7 +3,7 @@
# This is the OpenProvider API wrapper for acme.sh
#
# Author: Sylvia van Os
# Report Bugs here: https://github.com/
Neilpang
/acme.sh/issues/2104
# Report Bugs here: https://github.com/
acmesh-official
/acme.sh/issues/2104
#
# export OPENPROVIDER_USER="username"
# export OPENPROVIDER_PASSWORDHASH="hashed_password"
...
...
dnsapi/dns_opnsense.sh
0 → 100755
View file @
7a30cb9d
#!/usr/bin/env sh
#OPNsense Bind API
#https://docs.opnsense.org/development/api.html
#
#OPNs_Host="opnsense.example.com"
#OPNs_Port="443"
# optional, defaults to 443 if unset
#OPNs_Key="qocfU9RSbt8vTIBcnW8bPqCrpfAHMDvj5OzadE7Str+rbjyCyk7u6yMrSCHtBXabgDDXx/dY0POUp7ZA"
#OPNs_Token="pZEQ+3ce8dDlfBBdg3N8EpqpF5I1MhFqdxX06le6Gl8YzyQvYCfCzNaFX9O9+IOSyAs7X71fwdRiZ+Lv"
#OPNs_Api_Insecure=0
# optional, defaults to 0 if unset
# Set 1 for insecure and 0 for secure -> difference is whether ssl cert is checked for validity (0) or whether it is just accepted (1)
######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "123456789ABCDEF0000000000000000000000000000000000000"
#fulldomain
#txtvalue
OPNs_DefaultPort
=
443
OPNs_DefaultApi_Insecure
=
0
dns_opnsense_add
()
{
fulldomain
=
$1
txtvalue
=
$2
_opns_check_auth
||
return
1
if
!
set_record
"
$fulldomain
"
"
$txtvalue
"
;
then
return
1
fi
return
0
}
#fulldomain
dns_opnsense_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
_opns_check_auth
||
return
1
if
!
rm_record
"
$fulldomain
"
"
$txtvalue
"
;
then
return
1
fi
return
0
}
set_record
()
{
fulldomain
=
$1
new_challenge
=
$2
_info
"Adding record
$fulldomain
with challenge:
$new_challenge
"
_debug
"Detect root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _domain
"
$_domain
"
_debug _host
"
$_host
"
_debug _domainid
"
$_domainid
"
_return_str
=
""
_record_string
=
""
_build_record_string
"
$_domainid
"
"
$_host
"
"
$new_challenge
"
_uuid
=
""
if
_existingchallenge
"
$_domain
"
"
$_host
"
"
$new_challenge
"
;
then
# Update
if
_opns_rest
"POST"
"/record/setRecord/
${
_uuid
}
"
"
$_record_string
"
;
then
_return_str
=
"
$response
"
else
return
1
fi
else
#create
if
_opns_rest
"POST"
"/record/addRecord"
"
$_record_string
"
;
then
_return_str
=
"
$response
"
else
return
1
fi
fi
if
echo
"
$_return_str
"
| _egrep_o
"
\"
result
\"
:
\"
saved
\"
"
>
/dev/null
;
then
_opns_rest
"POST"
"/service/reconfigure"
"{}"
_debug
"Record created"
else
_err
"Error creating record
$_record_string
"
return
1
fi
return
0
}
rm_record
()
{
fulldomain
=
$1
new_challenge
=
"
$2
"
_info
"Remove record
$fulldomain
with challenge:
$new_challenge
"
_debug
"Detect root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _domain
"
$_domain
"
_debug _host
"
$_host
"
_debug _domainid
"
$_domainid
"
_uuid
=
""
if
_existingchallenge
"
$_domain
"
"
$_host
"
"
$new_challenge
"
;
then
# Delete
if
_opns_rest
"POST"
"/record/delRecord/
${
_uuid
}
"
"
\{\}
"
;
then
if
echo
"
$_return_str
"
| _egrep_o
"
\"
result
\"
:
\"
deleted
\"
"
>
/dev/null
;
then
_opns_rest
"POST"
"/service/reconfigure"
"{}"
_debug
"Record deleted"
else
_err
"Error deleting record
$_host
from domain
$fulldomain
"
return
1
fi
else
_err
"Error deleting record
$_host
from domain
$fulldomain
"
return
1
fi
else
_info
"Record not found, nothing to remove"
fi
return
0
}
#################### Private functions below ##################################
#_acme-challenge.www.domain.com
#returns
# _domainid=domid
#_domain=domain.com
_get_root
()
{
domain
=
$1
i
=
2
p
=
1
if
_opns_rest
"GET"
"/domain/get"
;
then
_domain_response
=
"
$response
"
else
return
1
fi
while
true
;
do
h
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
$i
-100
)
if
[
-z
"
$h
"
]
;
then
#not valid
return
1
fi
_debug h
"
$h
"
id
=
$(
echo
"
$_domain_response
"
| _egrep_o
"
\"
[^
\"
]*
\"
:{
\"
enabled
\"
:
\"
1
\"
,
\"
type
\"
:{
\"
master
\"
:{
\"
value
\"
:
\"
master
\"
,
\"
selected
\"
:1},
\"
slave
\"
:{
\"
value
\"
:
\"
slave
\"
,
\"
selected
\"
:0}},
\"
masterip
\"
:
\"
[^
\"
]*
\"
,
\"
domainname
\"
:
\"
${
h
}
\"
"
|
cut
-d
':'
-f
1 |
cut
-d
'"'
-f
2
)
if
[
-n
"
$id
"
]
;
then
_debug
id
"
$id
"
_host
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
"
${
h
}
"
_domainid
=
"
${
id
}
"
return
0
fi
p
=
$i
i
=
$(
_math
$i
+ 1
)
done
_debug
"
$domain
not found"
return
1
}
_opns_rest
()
{
method
=
$1
ep
=
$2
data
=
$3
#Percent encode user and token
key
=
$(
echo
"
$OPNs_Key
"
|
tr
-d
"
\n\r
"
| _url_encode
)
token
=
$(
echo
"
$OPNs_Token
"
|
tr
-d
"
\n\r
"
| _url_encode
)
opnsense_url
=
"https://
${
key
}
:
${
token
}
@
${
OPNs_Host
}
:
${
OPNs_Port
:-
$OPNs_DefaultPort
}
/api/bind
${
ep
}
"
export
_H1
=
"Content-Type: application/json"
_debug2
"Try to call api: https://
${
OPNs_Host
}
:
${
OPNs_Port
:-
$OPNs_DefaultPort
}
/api/bind
${
ep
}
"
if
[
!
"
$method
"
=
"GET"
]
;
then
_debug data
"
$data
"
export
_H1
=
"Content-Type: application/json"
response
=
"
$(
_post
"
$data
"
"
$opnsense_url
"
""
"
$method
"
)
"
else
export
_H1
=
""
response
=
"
$(
_get
"
$opnsense_url
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$ep
"
return
1
fi
_debug2 response
"
$response
"
return
0
}
_build_record_string
()
{
_record_string
=
"{
\"
record
\"
:{
\"
enabled
\"
:
\"
1
\"
,
\"
domain
\"
:
\"
$1
\"
,
\"
name
\"
:
\"
$2
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
value
\"
:
\"
$3
\"
}}"
}
_existingchallenge
()
{
if
_opns_rest
"GET"
"/record/searchRecord"
;
then
_record_response
=
"
$response
"
else
return
1
fi
_uuid
=
""
_uuid
=
$(
echo
"
$_record_response
"
| _egrep_o
"
\"
uuid
\"
:
\"
[^
\"
]*
\"
,
\"
enabled
\"
:
\"
[01]
\"
,
\"
domain
\"
:
\"
$1
\"
,
\"
name
\"
:
\"
$2
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
value
\"
:
\"
$3
\"
"
|
cut
-d
':'
-f
2 |
cut
-d
'"'
-f
2
)
if
[
-n
"
$_uuid
"
]
;
then
_debug uuid
"
$_uuid
"
return
0
fi
_debug
"
${
2
}
.
$1
{1} record not found"
return
1
}
_opns_check_auth
()
{
OPNs_Host
=
"
${
OPNs_Host
:-
$(
_readaccountconf_mutable OPNs_Host
)
}
"
OPNs_Port
=
"
${
OPNs_Port
:-
$(
_readaccountconf_mutable OPNs_Port
)
}
"
OPNs_Key
=
"
${
OPNs_Key
:-
$(
_readaccountconf_mutable OPNs_Key
)
}
"
OPNs_Token
=
"
${
OPNs_Token
:-
$(
_readaccountconf_mutable OPNs_Token
)
}
"
OPNs_Api_Insecure
=
"
${
OPNs_Api_Insecure
:-
$(
_readaccountconf_mutable OPNs_Api_Insecure
)
}
"
if
[
-z
"
$OPNs_Host
"
]
;
then
_err
"You don't specify OPNsense address."
return
1
else
_saveaccountconf_mutable OPNs_Host
"
$OPNs_Host
"
fi
if
!
printf
'%s'
"
$OPNs_Port
"
|
grep
'^[0-9]*$'
>
/dev/null
;
then
_err
'OPNs_Port specified but not numeric value'
return
1
elif
[
-z
"
$OPNs_Port
"
]
;
then
_info
"OPNSense port not specified. Defaulting to using port
$OPNs_DefaultPort
"
else
_saveaccountconf_mutable OPNs_Port
"
$OPNs_Port
"
fi
if
!
printf
'%s'
"
$OPNs_Api_Insecure
"
|
grep
'^[01]$'
>
/dev/null
;
then
_err
'OPNs_Api_Insecure specified but not 0/1 value'
return
1
elif
[
-n
"
$OPNs_Api_Insecure
"
]
;
then
_saveaccountconf_mutable OPNs_Api_Insecure
"
$OPNs_Api_Insecure
"
fi
export
HTTPS_INSECURE
=
"
${
OPNs_Api_Insecure
:-
$OPNs_DefaultApi_Insecure
}
"
if
[
-z
"
$OPNs_Key
"
]
;
then
_err
"you have not specified your OPNsense api key id."
_err
"Please set OPNs_Key and try again."
return
1
else
_saveaccountconf_mutable OPNs_Key
"
$OPNs_Key
"
fi
if
[
-z
"
$OPNs_Token
"
]
;
then
_err
"you have not specified your OPNsense token."
_err
"Please create OPNs_Token and try again."
return
1
else
_saveaccountconf_mutable OPNs_Token
"
$OPNs_Token
"
fi
if
!
_opns_rest
"GET"
"/general/get"
;
then
_err
"Call to OPNsense API interface failed. Unable to access OPNsense API."
return
1
fi
return
0
}
dnsapi/dns_ovh.sh
View file @
7a30cb9d
...
...
@@ -32,9 +32,9 @@ SYS_CA='https://ca.api.soyoustart.com/1.0'
#'runabove-ca'
RAV_CA
=
'https://api.runabove.com/1.0'
wiki
=
"https://github.com/
Neilpang
/acme.sh/wiki/How-to-use-OVH-domain-api"
wiki
=
"https://github.com/
acmesh-official
/acme.sh/wiki/How-to-use-OVH-domain-api"
ovh_success
=
"https://github.com/
Neilpang
/acme.sh/wiki/OVH-Success"
ovh_success
=
"https://github.com/
acmesh-official
/acme.sh/wiki/OVH-Success"
_ovh_get_api
()
{
_ogaep
=
"
$1
"
...
...
dnsapi/dns_pleskxml.sh
View file @
7a30cb9d
...
...
@@ -2,7 +2,7 @@
## Name: dns_pleskxml.sh
## Created by Stilez.
## Also uses some code from PR#1832 by @romanlum (https://github.com/
Neilpang
/acme.sh/pull/1832/files)
## Also uses some code from PR#1832 by @romanlum (https://github.com/
acmesh-official
/acme.sh/pull/1832/files)
## This DNS-01 method uses the Plesk XML API described at:
## https://docs.plesk.com/en-US/12.5/api-rpc/about-xml-api.28709
...
...
dnsapi/dns_rackspace.sh
View file @
7a30cb9d
...
...
@@ -9,7 +9,7 @@ RACKSPACE_Endpoint="https://dns.api.rackspacecloud.com/v1.0"
# 20190213 - The name & id fields swapped in the API response; fix sed
# 20190101 - Duplicating file for new pull request to dev branch
# Original - tcocca:rackspace_dnsapi https://github.com/
Neilpang
/acme.sh/pull/1297
# Original - tcocca:rackspace_dnsapi https://github.com/
acmesh-official
/acme.sh/pull/1297
######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
...
...
dnsapi/dns_servercow.sh
View file @
7a30cb9d
#!/usr/bin/env sh
##########
# Custom servercow.de DNS API v1 for use with [acme.sh](https://github.com/
Neilpang
/acme.sh)
# Custom servercow.de DNS API v1 for use with [acme.sh](https://github.com/
acmesh-official
/acme.sh)
#
# Usage:
# export SERVERCOW_API_Username=username
...
...
dnsapi/dns_zone.sh
View file @
7a30cb9d
...
...
@@ -136,10 +136,10 @@ _get_root() {
if
[
-z
"
$h
"
]
;
then
return
1
fi
if
!
_zone_rest GET
"dns/
$h
/a
"
;
then
if
!
_zone_rest GET
"dns/
$h
"
;
then
return
1
fi
if
_contains
"
$response
"
"
\"
name
\"
:
\"
$h
\"
"
>
/dev/null
;
then
if
_contains
"
$response
"
"
\"
identificator
\"
:
\"
$h
\"
"
>
/dev/null
;
then
_domain
=
$h
return
0
fi
...
...
Prev
1
2
Next
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