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
3f0462b6
Unverified
Commit
3f0462b6
authored
May 15, 2018
by
linux-insideDE
Committed by
GitHub
May 15, 2018
Browse files
Merge pull request #1 from linux-insideDE/netcup-api
added netcup api
parents
d9db9075
f3a622d1
Changes
3
Show whitespace changes
Inline
Side-by-side
README.md
View file @
3f0462b6
...
@@ -320,6 +320,7 @@ You don't have to do anything manually!
...
@@ -320,6 +320,7 @@ You don't have to do anything manually!
1.
Loopia.se API
1.
Loopia.se API
1.
acme-dns (https://github.com/joohoi/acme-dns)
1.
acme-dns (https://github.com/joohoi/acme-dns)
1.
TELE3 (https://www.tele3.cz)
1.
TELE3 (https://www.tele3.cz)
1.
netcup DNS API (https://www.netcup.de)
And:
And:
...
...
dnsapi/README.md
View file @
3f0462b6
...
@@ -876,6 +876,22 @@ acme.sh --issue --dns dns_tele3 -d example.com -d *.example.com
...
@@ -876,6 +876,22 @@ acme.sh --issue --dns dns_tele3 -d example.com -d *.example.com
```
```
The TELE3_Key and TELE3_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed.
The TELE3_Key and TELE3_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed.
## 47. Use netcup DNS API to automatically issue cert
First you need to login to your CCP account to get your API Key and API Password.
This script requires
``jq``
```
export NC_Apikey="<Apikey>"
export NC_Apipw="<Apipassword>"
export NC_CID="<Customernumber>"
```
Now, let's issue a cert:
```
acme.sh --issue --dns dns_netcup -d example.com -d www.example.com
```
The
`NC_Apikey`
,
`NC_Apipw`
and
`NC_CID`
will be saved in
`~/.acme.sh/account.conf`
and will be reused when needed.
# Use custom API
# Use custom API
If your API is not supported yet, you can write your own DNS API.
If your API is not supported yet, you can write your own DNS API.
...
...
dnsapi/dns_netcup.sh
0 → 100644
View file @
3f0462b6
#!/usr/bin/env sh
#Requirments: jq
#developed by linux-insideDE
NC_Apikey
=
"
${
NC_Apikey
:-
$(
_readaccountconf_mutable NC_Apikey
)
}
"
NC_Apipw
=
"
${
NC_Apipw
:-
$(
_readaccountconf_mutable NC_Apipw
)
}
"
NC_CID
=
"
${
NC_CID
:-
$(
_readaccountconf_mutable NC_CID
)
}
"
end
=
"https://ccp.netcup.net/run/webservice/servers/endpoint.php?JSON"
client
=
""
dns_netcup_add
()
{
login
if
[
"
$NC_Apikey
"
=
""
]
||
[
"
$NC_Apipw
"
=
""
]
||
[
"
$NC_CID
"
=
""
]
;
then
_err
"No Credentials given"
return
1
fi
_saveaccountconf_mutable NC_Apikey
"
$NC_Apikey
"
_saveaccountconf_mutable NC_Apipw
"
$NC_Apipw
"
_saveaccountconf_mutable NC_CID
"
$NC_CID
"
fulldomain
=
$1
txtvalue
=
$2
tld
=
""
domain
=
""
exit
=
0
i
=
20
while
[
"
$i
"
-gt
0
]
;
do
tmp
=
$(
echo
"
$fulldomain
"
|
cut
-d
'.'
-f
$i
)
if
[
"
$tmp
"
!=
""
]
;
then
if
[
"
$tld
"
=
""
]
;
then
tld
=
$tmp
else
domain
=
$tmp
exit
=
$i
break
;
fi
fi
i
=
$((
i
-
1
))
done
inc
=
""
i
=
1
while
[
"
$i
"
-lt
"
$exit
"
]
;
do
if
[
"
$((
exit-1
))
"
=
"
$i
"
]
;
then
inc
=
"
$inc$i
"
break
;
else
if
[
"
$inc
"
=
""
]
;
then
inc
=
"
$i
,"
else
inc
=
"
$inc$i
,"
fi
fi
i
=
$((
i
+
1
))
done
tmp
=
$(
echo
"
$fulldomain
"
|
cut
-d
'.'
-f
$inc
)
msg
=
$(
_post
"{
\"
action
\"
:
\"
updateDnsRecords
\"
,
\"
param
\"
: {
\"
apikey
\"
:
\"
$NC_Apikey
\"
,
\"
apisessionid
\"
:
\"
$sid
\"
,
\"
customernumber
\"
:
\"
$NC_CID
\"
,
\"
clientrequestid
\"
:
\"
$client
\"
,
\"
domainname
\"
:
\"
$domain
.
$tld
\"
,
\"
dnsrecordset
\"
: {
\"
dnsrecords
\"
: [ {
\"
id
\"
:
\"\"
,
\"
hostname
\"
:
\"
$tmp
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
priority
\"
:
\"\"
,
\"
destination
\"
:
\"
$txtvalue
\"
,
\"
deleterecord
\"
:
\"
false
\"
,
\"
state
\"
:
\"
yes
\"
} ]}}}"
"
$end
"
""
"POST"
)
_debug
"
$msg
"
if
[
"
$(
echo
"
$msg
"
| jq
-r
.status
)
"
!=
"success"
]
;
then
_err
"
$msg
"
return
1
fi
logout
}
dns_netcup_rm
()
{
login
fulldomain
=
$1
txtvalue
=
$2
tld
=
""
domain
=
""
exit
=
0
i
=
20
while
[
"
$i
"
-gt
0
]
;
do
tmp
=
$(
echo
"
$fulldomain
"
|
cut
-d
'.'
-f
$i
)
if
[
"
$tmp
"
!=
""
]
;
then
if
[
"
$tld
"
=
""
]
;
then
tld
=
$tmp
else
domain
=
$tmp
exit
=
$i
break
;
fi
fi
i
=
$((
i
-
1
))
done
inc
=
""
i
=
1
while
[
"
$i
"
-lt
"
$exit
"
]
;
do
if
[
"
$((
exit-1
))
"
=
"
$i
"
]
;
then
inc
=
"
$inc$i
"
break
;
else
if
[
"
$inc
"
=
""
]
;
then
inc
=
"
$i
,"
else
inc
=
"
$inc$i
,"
fi
fi
i
=
$((
i
+
1
))
done
tmp
=
$(
echo
"
$fulldomain
"
|
cut
-d
'.'
-f
$inc
)
doma
=
"
$domain
.
$tld
"
rec
=
$(
getRecords
"
$doma
"
)
ids
=
$(
echo
"
$rec
"
| jq
-r
".[]|select(.destination==
\"
$txtvalue
\"
)|.id"
)
msg
=
$(
_post
"{
\"
action
\"
:
\"
updateDnsRecords
\"
,
\"
param
\"
: {
\"
apikey
\"
:
\"
$NC_Apikey
\"
,
\"
apisessionid
\"
:
\"
$sid
\"
,
\"
customernumber
\"
:
\"
$NC_CID
\"
,
\"
clientrequestid
\"
:
\"
$client
\"
,
\"
domainname
\"
:
\"
$doma
\"
,
\"
dnsrecordset
\"
: {
\"
dnsrecords
\"
: [ {
\"
id
\"
:
\"
$ids
\"
,
\"
hostname
\"
:
\"
$tmp
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
priority
\"
:
\"\"
,
\"
destination
\"
:
\"
$txtvalue
\"
,
\"
deleterecord
\"
:
\"
TRUE
\"
,
\"
state
\"
:
\"
yes
\"
} ]}}}"
"
$end
"
""
"POST"
)
_debug
"
$msg
"
if
[
"
$(
echo
"
$msg
"
| jq
-r
.status
)
"
!=
"success"
]
;
then
_err
"
$msg
"
return
1
fi
logout
}
login
()
{
tmp
=
$(
_post
"{
\"
action
\"
:
\"
login
\"
,
\"
param
\"
: {
\"
apikey
\"
:
\"
$NC_Apikey
\"
,
\"
apipassword
\"
:
\"
$NC_Apipw
\"
,
\"
customernumber
\"
:
\"
$NC_CID
\"
}}"
"
$end
"
""
"POST"
)
sid
=
$(
echo
"
$tmp
"
| jq
-r
.responsedata.apisessionid
)
_debug
"
$tmp
"
if
[
"
$(
echo
"
$tmp
"
| jq
-r
.status
)
"
!=
"success"
]
;
then
_err
"
$tmp
"
return
1
fi
}
logout
()
{
tmp
=
$(
_post
"{
\"
action
\"
:
\"
logout
\"
,
\"
param
\"
: {
\"
apikey
\"
:
\"
$NC_Apikey
\"
,
\"
apisessionid
\"
:
\"
$sid
\"
,
\"
customernumber
\"
:
\"
$NC_CID
\"
}}"
"
$end
"
""
"POST"
)
_debug
"
$tmp
"
if
[
"
$(
echo
"
$tmp
"
| jq
-r
.status
)
"
!=
"success"
]
;
then
_err
"
$tmp
"
return
1
fi
}
getRecords
()
{
tmp2
=
$(
_post
"{
\"
action
\"
:
\"
infoDnsRecords
\"
,
\"
param
\"
: {
\"
apikey
\"
:
\"
$NC_Apikey
\"
,
\"
apisessionid
\"
:
\"
$sid
\"
,
\"
customernumber
\"
:
\"
$NC_CID
\"
,
\"
domainname
\"
:
\"
$1
\"
}}"
"
$end
"
""
"POST"
)
xxd
=
$(
echo
"
$tmp2
"
| jq
-r
".responsedata.dnsrecords"
|
tr
'['
' '
|
tr
']'
' '
)
xcd
=
$(
echo
"
$xxd
"
|
sed
's/}\s{/},{/g'
)
echo
"[
$xcd
]"
_debug
"
$tmp2
"
if
[
"
$(
echo
"
$tmp2
"
| jq
-r
.status
)
"
!=
"success"
]
;
then
_err
"
$tmp2
"
return
1
fi
}
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