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
b8f4fa35
Commit
b8f4fa35
authored
May 06, 2019
by
Maarten den Braber
Browse files
Add acmeproxy provider
parent
9cc9f519
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_acmeproxy.sh
0 → 100644
View file @
b8f4fa35
#!/usr/bin/env sh
## API integration by Jason Keller and Elijah Tenai
##
## Report any bugs via https://github.com/jasonkeller/acme.sh
dns_acmeproxy_add
()
{
fulldomain
=
"
${
1
}
"
txtvalue
=
"
${
2
}
"
action
=
"present"
_debug
"Calling: _acmeproxy_request() '
${
fulldomain
}
' '
${
txtvalue
}
' '
${
action
}
'"
_acmeproxy_request
$fulldomain
$txtvalue
$action
}
dns_acmeproxy_rm
()
{
fulldomain
=
"
${
1
}
"
txtvalue
=
"
${
2
}
"
action
=
"cleanup"
_debug
"Calling: _acmeproxy_request() '
${
fulldomain
}
' '
${
txtvalue
}
' '
${
action
}
'"
_acmeproxy_request
$fulldomain
$txtvalue
$action
}
_acmeproxy_request
()
{
## Nothing to see here, just some housekeeping
fulldomain
=
$1
txtvalue
=
$2
action
=
$3
_info
"Using acmeproxy"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$txtvalue
"
ACMEPROXY_ENDPOINT
=
"
${
ACMEPROXY_ENDPOINT
:-
$(
_readaccountconf_mutable ACMEPROXY_ENDPOINT
)
}
"
ACMEPROXY_USERNAME
=
"
${
ACMEPROXY_USERNAME
:-
$(
_readaccountconf_mutable ACMEPROXY_USERNAME
)
}
"
ACMEPROXY_PASSWORD
=
"
${
ACMEPROXY_PASSWORD
:-
$(
_readaccountconf_mutable ACMEPROXY_PASSWORD
)
}
"
## Check for the endpoint
if
[
-z
"ACMEPROXY_ENDPOINT"
]
;
then
ACMEPROXY_ENDPOINT
=
""
_err
"You didn't specify the endpoint"
_err
"Please set them via 'export ACMEPROXY_ENDPOINT=https://ip:port' and try again."
return
1
fi
## Check for the credentials
if
[
-z
"
$ACMEPROXY_USERNAME
"
]
||
[
-z
"
$ACMEPROXY_PASSWORD
"
]
;
then
ACMEPROXY_USERNAME
=
""
ACMEPROXY_PASSWORD
=
""
_err
"You didn't set username and password"
_err
"Please set them via 'export ACMEPROXY_USERNAME=...' and 'export ACMEPROXY_PASSWORD=...' and try again."
return
1
fi
## Save the credentials to the account file
_saveaccountconf_mutable ACMEPROXY_ENDPOINT
"
$ACMEPROXY_ENDPOINT
"
_saveaccountconf_mutable ACMEPROXY_USERNAME
"
$ACMEPROXY_USERNAME
"
_saveaccountconf_mutable ACMEPROXY_PASSWORD
"
$ACMEPROXY_PASSWORD
"
## Base64 encode the credentials
credentials
=
$(
printf
"%b"
"
$ACMEPROXY_USERNAME
:
$ACMEPROXY_PASSWORD
"
| _base64
)
## Construct the HTTP Authorization header
export
_H1
=
"Authorization: Basic
$credentials
"
export
_H2
=
"Accept: application/json"
export
_H3
=
"Content-Type: application/json"
## Add the challenge record to the acmeproxy grid member
response
=
"
$(
_post
"{
\"
fqdn
\"
:
\"
$fulldomain
.
\"
,
\"
value
\"
:
\"
$txtvalue
\"
}"
"
$ACMEPROXY_ENDPOINT
/
$action
"
""
"POST"
)
"
## Let's see if we get something intelligible back from the unit
if
echo
"
$response
"
|
grep
"
\"
$txtvalue
\"
"
>
/dev/null
;
then
_info
"Successfully created the txt record"
return
0
else
_err
"Error encountered during record addition"
_err
"
$response
"
return
1
fi
}
#################### Private functions below ##################################
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