Skip to content
This repository was archived by the owner on Jan 6, 2021. It is now read-only.

Commit 71ec23f

Browse files
authored
Merge pull request #391 from klardotsh/support-gandi-livedns
feat(dns-gandi): add support for Gandi LiveDNS challenges
2 parents 9b2e3c1 + 91ea911 commit 71ec23f

File tree

7 files changed

+13
-3
lines changed

7 files changed

+13
-3
lines changed

Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ RUN \
107107
certbot-dns-rfc2136 \
108108
certbot-dns-route53 \
109109
certbot-dns-transip \
110+
certbot-plugin-gandi \
110111
cryptography \
111112
requests && \
112113
echo "**** remove unnecessary fail2ban filters ****" && \

Dockerfile.aarch64

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ RUN \
107107
certbot-dns-rfc2136 \
108108
certbot-dns-route53 \
109109
certbot-dns-transip \
110+
certbot-plugin-gandi \
110111
cryptography \
111112
requests && \
112113
echo "**** remove unnecessary fail2ban filters ****" && \

Dockerfile.armhf

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ RUN \
107107
certbot-dns-rfc2136 \
108108
certbot-dns-route53 \
109109
certbot-dns-transip \
110+
certbot-plugin-gandi \
110111
cryptography \
111112
requests && \
112113
echo "**** remove unnecessary fail2ban filters ****" && \

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ Container images are configured using parameters passed at runtime (such as thos
135135
| `-e URL=yourdomain.url` | Top url you have control over (`customdomain.com` if you own it, or `customsubdomain.ddnsprovider.com` if dynamic dns). |
136136
| `-e SUBDOMAINS=www,` | Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this _exactly_ to `wildcard` (wildcard cert is available via `dns` and `duckdns` validation only) |
137137
| `-e VALIDATION=http` | Letsencrypt validation method to use, options are `http`, `tls-sni`, `dns` or `duckdns` (`dns` method also requires `DNSPLUGIN` variable set) (`duckdns` method requires `DUCKDNSTOKEN` variable set, and the `SUBDOMAINS` variable must be either empty or set to `wildcard`). |
138-
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
138+
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `gandi`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
139139
| `-e DUCKDNSTOKEN=<token>` | Required if `VALIDATION` is set to `duckdns`. Retrieve your token from https://www.duckdns.org |
140140
| `-e EMAIL=<e-mail>` | Optional e-mail address used for cert expiration notifications. |
141141
| `-e DHLEVEL=2048` | Dhparams bit value (default=2048, can be set to `1024` or `4096`). |
@@ -283,6 +283,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
283283

284284
## Versions
285285

286+
* **01.01.20:** - Add support for gandi dns validation.
286287
* **31.12.19:** - GeoIP2 databases now require personal license keys to download. Auto download is disabled and log message is added.
287288
* **19.12.19:** - Rebasing to alpine 3.11.
288289
* **19.12.19:** - Increase large_client_header_buffers in nginx.conf to prevent 414 errors.

readme-vars.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ cap_add_param_vars:
5151
# optional container parameters
5252
opt_param_usage_include_env: true
5353
opt_param_env_vars:
54-
- { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`." }
54+
- { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `gandi`, `google`, `inwx`, `linode`, `luadns`, `nsone`, `ovh`, `rfc2136`, `route53` and `transip`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`." }
5555
- { env_var: "DUCKDNSTOKEN", env_value: "<token>", desc: "Required if `VALIDATION` is set to `duckdns`. Retrieve your token from https://www.duckdns.org" }
5656
- { env_var: "EMAIL", env_value: "<e-mail>", desc: "Optional e-mail address used for cert expiration notifications." }
5757
- { env_var: "DHLEVEL", env_value: "2048", desc: "Dhparams bit value (default=2048, can be set to `1024` or `4096`)." }
@@ -126,6 +126,7 @@ app_setup_nginx_reverse_proxy_block: ""
126126

127127
# changelog
128128
changelogs:
129+
- { date: "01.01.20:", desc: "Add support for gandi dns validation." }
129130
- { date: "31.12.19:", desc: "GeoIP2 databases now require personal license keys to download. Auto download is disabled and log message is added." }
130131
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." }
131132
- { date: "19.12.19:", desc: "Increase large_client_header_buffers in nginx.conf to prevent 414 errors." }

root/defaults/dns-conf/gandi.ini

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Instructions: https://github.com/obynio/certbot-plugin-gandi#usage
2+
# Replace with your value
3+
certbot_plugin_gandi:dns_api_key=APIKEY

root/etc/cont-init.d/50-config

+3-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ cp /config/fail2ban/jail.local /etc/fail2ban/jail.local
7676
cp /defaults/ldap.conf /config/nginx/ldap.conf
7777

7878
# check to make sure DNSPLUGIN is selected if dns validation is used
79-
[[ "$VALIDATION" = "dns" ]] && [[ ! "$DNSPLUGIN" =~ ^(cloudflare|cloudxns|digitalocean|dnsimple|dnsmadeeasy|google|inwx|linode|luadns|nsone|ovh|rfc2136|route53|transip)$ ]] && \
79+
[[ "$VALIDATION" = "dns" ]] && [[ ! "$DNSPLUGIN" =~ ^(cloudflare|cloudxns|digitalocean|dnsimple|dnsmadeeasy|gandi|google|inwx|linode|luadns|nsone|ovh|rfc2136|route53|transip)$ ]] && \
8080
echo "Please set the DNSPLUGIN variable to a valid plugin name. See docker info for more details." && \
8181
sleep infinity
8282

@@ -174,6 +174,8 @@ fi
174174
if [ "$VALIDATION" = "dns" ]; then
175175
if [ "$DNSPLUGIN" = "route53" ]; then
176176
PREFCHAL="--dns-${DNSPLUGIN} --manual-public-ip-logging-ok"
177+
elif [[ "$DNSPLUGIN" =~ ^(gandi)$ ]]; then
178+
PREFCHAL="-a certbot-plugin-${DNSPLUGIN}:dns --certbot-plugin-${DNSPLUGIN}:dns-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok"
177179
elif [[ "$DNSPLUGIN" =~ ^(google)$ ]]; then
178180
PREFCHAL="--dns-${DNSPLUGIN} --dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.json --manual-public-ip-logging-ok --dns-${DNSPLUGIN}-propagation-seconds 120"
179181
elif [[ "$DNSPLUGIN" =~ ^(inwx|transip)$ ]]; then

0 commit comments

Comments
 (0)