This is a bash
-only hook for the Let's Encrypt ACME client dehydrated, using GoDaddy's APIs to automatically manage DNS records to respond to dns-01
challenges.
- command line utilities (both already required by
dehydrated
):bash
(>= v4.0 for pattern matching)curl
- GoDaddy API Key and Secret - see Configuration below.
mkdir le
cd le
git clone https://github.com/dehydrated-io/dehydrated.git dehydrated
mkdir hooks
git clone https://github.com/eengstrom/letsencrypt-hook-dns-01-godaddy.git hooks/dns-01-godaddy
If you do not have an account-specific GoDaddy API Key and Secret, visit "GoDaddy APIs - getting started" to obtain them.
The hook requires that they be in your environment. You can manually set them via:
export GODADDY_KEY='example-key'
export GODADDY_SECRET='example-secret'
You may also put those lines into a dehydrated
config
file.
dehydrated/dehydrated --cron -d foo.example.com -t dns-01 -k 'hooks/dns-01-godaddy/hook.sh'
Although I prefer a bash
-only version, there are other GoDaddy-compatible, dehydrated
hooks:
- https://github.com/josteink/le-godaddy-dns - requires python and some python libraries
I've mostly abandoned this hook. Instead, I'm using lexicon
, even though it adds a dependency on Python.
Issues that I never resolved:
- GoDaddy doesn't offer a API call to delete a record - only
GET
andPUT
. I did find a possible solution idea in the GoDaddy forums, but never implemented. - Deployment is baked into the hook (currently a NoOp). Would like to pull out somehow.
With thanks to:
- Lukas Schauer, the original author of
dehydrated
. - Yashar F. and the hints provided by his notional, bash-only GoDaddy hook.