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
84795ff4
Unverified
Commit
84795ff4
authored
Mar 31, 2024
by
neil
Committed by
GitHub
Mar 31, 2024
Browse files
Merge pull request #4757 from laraveluser/master
Add support for Lima-City
parents
cc5c722e
c8604255
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_limacity.sh
0 → 100644
View file @
84795ff4
#!/usr/bin/env sh
# Created by Laraveluser
#
# Pass credentials before "acme.sh --issue --dns dns_limacity ..."
# --
# export LIMACITY_APIKEY="<API-KEY>"
# --
#
# Pleas note: APIKEY must have following roles: dns.admin, domains.reader
######## Public functions #####################
LIMACITY_APIKEY
=
"
${
LIMACITY_APIKEY
:-
$(
_readaccountconf_mutable LIMACITY_APIKEY
)
}
"
AUTH
=
$(
printf
"%s"
"api:
$LIMACITY_APIKEY
"
| _base64
-w
0
)
export
_H1
=
"Authorization: Basic
$AUTH
"
export
_H2
=
"Content-Type: application/json"
APIBASE
=
https://www.lima-city.de/usercp
#Usage: dns_limacity_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_limacity_add
()
{
_debug LIMACITY_APIKEY
"
$LIMACITY_APIKEY
"
if
[
"
$LIMACITY_APIKEY
"
=
""
]
;
then
_err
"No Credentials given"
return
1
fi
# save the dns server and key to the account conf file.
_saveaccountconf_mutable LIMACITY_APIKEY
"
${
LIMACITY_APIKEY
}
"
fulldomain
=
$1
txtvalue
=
$2
if
!
_lima_get_domain_id
"
$fulldomain
"
;
then return
1
;
fi
msg
=
$(
_post
"{
\"
nameserver_record
\"
:{
\"
name
\"
:
\"
${
fulldomain
}
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
content
\"
:
\"
${
txtvalue
}
\"
,
\"
ttl
\"
:60}}"
"
${
APIBASE
}
/domains/
${
LIMACITY_DOMAINID
}
/records.json"
""
"POST"
)
_debug
"
$msg
"
if
[
"
$(
echo
"
$msg
"
| _egrep_o
"
\"
status
\"
:
\"
ok
\"
"
)
"
=
""
]
;
then
_err
"
$msg
"
return
1
fi
return
0
}
#Usage: dns_limacity_rm _acme-challenge.www.domain.com
dns_limacity_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
if
!
_lima_get_domain_id
"
$fulldomain
"
;
then return
1
;
fi
for
recordId
in
$(
_get
"
${
APIBASE
}
/domains/
${
LIMACITY_DOMAINID
}
/records.json"
| _egrep_o
"{
\"
id
\"
:[0-9]*[^}]*,
\"
name
\"
:
\"
${
fulldomain
}
\"
"
| _egrep_o
"[0-9]*"
)
;
do
_post
""
"
${
APIBASE
}
/domains/
${
LIMACITY_DOMAINID
}
/records/
${
recordId
}
"
""
"DELETE"
done
return
0
}
#################### Private functions below ##################################
_lima_get_domain_id
()
{
domain
=
"
$1
"
_debug
"
$domain
"
i
=
2
p
=
1
domains
=
$(
_get
"
${
APIBASE
}
/domains.json"
)
if
[
"
$(
echo
"
$domains
"
| _egrep_o
"
\{
.*""domains"""
)
"
]
;
then
response
=
"
$(
echo
"
$domains
"
|
tr
-d
"
\n
"
|
tr
'{'
"|"
|
sed
's/|/&{/g'
|
tr
"|"
"
\n
"
)
"
while
true
;
do
h
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
$i
-100
)
_debug h
"
$h
"
if
[
-z
"
$h
"
]
;
then
#not valid
return
1
fi
hostedzone
=
"
$(
echo
"
$response
"
| _egrep_o
"
\{
.*""unicode_fqdn""[^,]+""
$h
"".*
\}
"
)
"
if
[
"
$hostedzone
"
]
;
then
LIMACITY_DOMAINID
=
$(
printf
"%s
\n
"
"
$hostedzone
"
| _egrep_o
"
\"
id
\"
:
\s
*[0-9]+"
| _head_n 1 |
cut
-d
:
-f
2 |
tr
-d
\
)
if
[
"
$LIMACITY_DOMAINID
"
]
;
then
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
$h
return
0
fi
return
1
fi
p
=
$i
i
=
$(
_math
"
$i
"
+ 1
)
done
fi
return
1
}
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