Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
0fb206fe
Unverified
Commit
0fb206fe
authored
Oct 26, 2016
by
Philippe Kueck
Browse files
add nsupdate script for dns-01
parent
5d6fd809
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_nsupdate.sh
0 → 100755
View file @
0fb206fe
#!/usr/bin/env bash
######## Public functions #####################
#Usage: dns_nsupdate_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_nsupdate_add
()
{
fulldomain
=
$1
txtvalue
=
$2
_checkKeyFile
||
return
1
NSUPDATE_SERVER
=
${
NSUPDATE_SERVER
:-
localhost
}
# save the dns server and key to the account conf file.
_saveaccountconf NSUPDATE_SERVER
"
${
NSUPDATE_SERVER
}
"
_saveaccountconf NSUPDATE_KEY
"
${
NSUPDATE_KEY
}
"
tmp
=
$(
mktemp
--tmpdir
acme_nsupdate.XXXXXX
)
cat
>
${
tmp
}
<<
EOF
server
${
NSUPDATE_SERVER
}
update add
${
fulldomain
}
. 60 in txt "
${
txtvalue
}
"
send
EOF
_info
"adding
${
fulldomain
}
. 60 in txt
\"
${
txtvalue
}
\"
"
nsupdate
-k
${
NSUPDATE_KEY
}
${
tmp
}
if
[
$?
-ne
0
]
;
then
_err
"error updating domain, see
${
tmp
}
for details"
return
1
fi
rm
-f
${
tmp
}
return
0
}
#Usage: dns_nsupdate_rm _acme-challenge.www.domain.com
dns_nsupdate_rm
()
{
fulldomain
=
$1
_checkKeyFile
||
return
1
NSUPDATE_SERVER
=
${
NSUPDATE_SERVER
:-
localhost
}
tmp
=
$(
mktemp
--tmpdir
acme_nsupdate.XXXXXX
)
cat
>
${
tmp
}
<<
EOF
server
${
NSUPDATE_SERVER
}
update delete
${
fulldomain
}
. txt
send
EOF
_info
"removing
${
fulldomain
}
. txt"
nsupdate
-k
${
NSUPDATE_KEY
}
${
tmp
}
if
[
$?
-ne
0
]
;
then
_err
"error updating domain, see
${
tmp
}
for details"
return
1
fi
rm
-f
${
tmp
}
return
0
}
#################### Private functions bellow ##################################
_checkKeyFile
()
{
if
[
-z
"
${
NSUPDATE_KEY
}
"
]
;
then
_err
"you must specify a path to the nsupdate key file"
return
1
fi
if
[
!
-r
"
${
NSUPDATE_KEY
}
"
]
;
then
_err
"key
${
NSUPDATE_KEY
}
is unreadable"
return
1
fi
}
_info
()
{
if
[
-z
"
$2
"
]
;
then
echo
"[
$(
date
)
]
$1
"
else
echo
"[
$(
date
)
]
$1
='
$2
'"
fi
}
_err
()
{
_info
"
$@
"
>
&2
return
1
}
_debug
()
{
if
[
-z
"
$DEBUG
"
]
;
then
return
fi
_err
"
$@
"
return
0
}
_debug2
()
{
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
"2"
]
;
then
_debug
"
$@
"
fi
return
}
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