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

Commit 4a406dc

Browse files
authored
Merge pull request #405 from linuxserver/cpanel
Add cpanel dns validation
2 parents 9a0eb03 + c8157e6 commit 4a406dc

File tree

7 files changed

+19
-6
lines changed

7 files changed

+19
-6
lines changed

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ RUN \
9595
${CERTBOT} \
9696
certbot-dns-cloudflare \
9797
certbot-dns-cloudxns \
98+
certbot-dns-cpanel \
9899
certbot-dns-digitalocean \
99100
certbot-dns-dnsimple \
100101
certbot-dns-dnsmadeeasy \

Dockerfile.aarch64

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ RUN \
9595
${CERTBOT} \
9696
certbot-dns-cloudflare \
9797
certbot-dns-cloudxns \
98+
certbot-dns-cpanel \
9899
certbot-dns-digitalocean \
99100
certbot-dns-dnsimple \
100101
certbot-dns-dnsmadeeasy \

Dockerfile.armhf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ RUN \
9595
${CERTBOT} \
9696
certbot-dns-cloudflare \
9797
certbot-dns-cloudxns \
98+
certbot-dns-cpanel \
9899
certbot-dns-digitalocean \
99100
certbot-dns-dnsimple \
100101
certbot-dns-dnsmadeeasy \

README.md

Lines changed: 2 additions & 1 deletion
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`, `domeneshop`, `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`. |
138+
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `cpanel`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `domeneshop`, `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+
* **27.01.20:** - Add support for cpanel dns validation.
286287
* **10.01.20:** - Add support for domeneshop dns validation.
287288
* **07.01.20:** - Update ciphers from Mozilla ssl-config recommendations.
288289
* **01.01.20:** - Add support for gandi dns validation.

readme-vars.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ available_architectures:
1919
# development version
2020
development_versions: false
2121
development_versions_items:
22-
- { tag: "latest", desc: "Stable Ombi releases" }
23-
- { tag: "development", desc: "Releases from the `develop` branch of Ombi" }
22+
- { tag: "latest", desc: "Stable releases" }
23+
- { tag: "development", desc: "Releases from the `develop` branch" }
2424

2525

2626
# container parameters
@@ -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`, `domeneshop`, `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`." }
54+
- { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `cloudflare`, `cloudxns`, `cpanel`, `digitalocean`, `dnsimple`, `dnsmadeeasy`, `domeneshop`, `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: "27.01.20:", desc: "Add support for cpanel dns validation." }
129130
- { date: "10.01.20:", desc: "Add support for domeneshop dns validation." }
130131
- { date: "07.01.20:", desc: "Update ciphers from Mozilla ssl-config recommendations." }
131132
- { date: "01.01.20:", desc: "Add support for gandi dns validation." }

root/defaults/dns-conf/cpanel.ini

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Instructions: https://github.com/badjware/certbot-dns-cpanel#credentials
2+
# Replace with your values
3+
# include the scheme and the port number (usually 2083 for https)
4+
certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083
5+
certbot_dns_cpanel:cpanel_username = username
6+
certbot_dns_cpanel:cpanel_password = 1234567890abcdef

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

Lines changed: 4 additions & 2 deletions
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|domeneshop|gandi|google|inwx|linode|luadns|nsone|ovh|rfc2136|route53|transip)$ ]] && \
79+
[[ "$VALIDATION" = "dns" ]] && [[ ! "$DNSPLUGIN" =~ ^(cloudflare|cloudxns|cpanel|digitalocean|dnsimple|dnsmadeeasy|domeneshop|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,12 +174,14 @@ fi
174174
if [ "$VALIDATION" = "dns" ]; then
175175
if [ "$DNSPLUGIN" = "route53" ]; then
176176
PREFCHAL="--dns-${DNSPLUGIN} --manual-public-ip-logging-ok"
177+
elif [[ "$DNSPLUGIN" =~ ^(cpanel)$ ]]; then
178+
PREFCHAL="-a certbot-dns-${DNSPLUGIN}:${DNSPLUGIN} --certbot-dns-${DNSPLUGIN}:${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok --certbot-dns-${DNSPLUGIN}:${DNSPLUGIN}-propagation-seconds 120"
177179
elif [[ "$DNSPLUGIN" =~ ^(gandi)$ ]]; then
178180
PREFCHAL="-a certbot-plugin-${DNSPLUGIN}:dns --certbot-plugin-${DNSPLUGIN}:dns-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok"
179181
elif [[ "$DNSPLUGIN" =~ ^(google)$ ]]; then
180182
PREFCHAL="--dns-${DNSPLUGIN} --dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.json --manual-public-ip-logging-ok --dns-${DNSPLUGIN}-propagation-seconds 120"
181183
elif [[ "$DNSPLUGIN" =~ ^(domeneshop|inwx|transip)$ ]]; then
182-
PREFCHAL="-a certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN} --certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok"
184+
PREFCHAL="-a certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN} --certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok --certbot-dns-${DNSPLUGIN}:dns-${DNSPLUGIN}-propagation-seconds 180"
183185
else
184186
PREFCHAL="--dns-${DNSPLUGIN} --dns-${DNSPLUGIN}-credentials /config/dns-conf/${DNSPLUGIN}.ini --manual-public-ip-logging-ok"
185187
fi

0 commit comments

Comments
 (0)