From 04e8ccda2674bf9b404b4c0687b36b29e1d0aaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Nenz=C3=A9n?= Date: Fri, 16 Aug 2024 10:40:02 +0200 Subject: [PATCH] letsencrypt: Added support for Simply.com DNS challenge. (#3717) * Update build.yaml * Update run * Update file-structure.sh * Update config.yaml * Update Dockerfile * Update CHANGELOG.md * Update build.yaml * Version bump * Fixes DOCS and rename account_id to correct property * Update DOCS.md * Update DOCS.md * Update DOCS.md * Update letsencrypt/DOCS.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update DOCS.md * Update letsencrypt/DOCS.md --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Stefan Agner --- letsencrypt/CHANGELOG.md | 4 +++ letsencrypt/DOCS.md | 26 +++++++++++++++++++ letsencrypt/Dockerfile | 2 ++ letsencrypt/build.yaml | 1 + letsencrypt/config.yaml | 6 +++-- .../rootfs/etc/cont-init.d/file-structure.sh | 2 ++ .../rootfs/etc/services.d/lets-encrypt/run | 6 +++++ 7 files changed, 45 insertions(+), 2 deletions(-) diff --git a/letsencrypt/CHANGELOG.md b/letsencrypt/CHANGELOG.md index dfd1b4a86a8..25e0893fdb0 100644 --- a/letsencrypt/CHANGELOG.md +++ b/letsencrypt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 5.1.1 + +- Add Simply DNS support + ## 5.1.0 - Add external account binding support diff --git a/letsencrypt/DOCS.md b/letsencrypt/DOCS.md index 38423006f01..3636b15fffd 100644 --- a/letsencrypt/DOCS.md +++ b/letsencrypt/DOCS.md @@ -60,6 +60,7 @@ dns-linode dns-luadns dns-njalla dns-noris +dns-simply dns-nsone dns-ovh dns-rfc2136 @@ -151,6 +152,8 @@ domainoffensive_token: '' plesk_username: '' plesk_password: '' plesk_api_url: '' +simply_account_name: '' +simply_api_key: '' ``` @@ -996,6 +999,28 @@ You can define the `propagation_seconds` explicitly. Otherwise, it will use a cu +
+ Simply.com DNS challenge + + ```yaml + email: your.email@example.com + domains: + - your.domain.tld + certfile: fullchain.pem + keyfile: privkey.pem + challenge: dns + dns: + provider: dns-simply + simply_account_name: Sxxxxxx + simply_api_key: YOUR_API_KEY # Replace 'YOUR_API_KEY' with your actual Simply.com API key. + ``` + +The `simply_account_name` refers to the Simply.com account number (Sxxxxxx), and the `simply_api_key` is the account's API key. +The API key assigned to your Simply.com account can be found in your Simply.com Control panel. + +
+ + ## Certificate files The certificate files will be available within the "ssl" share after successful request of the certificates. @@ -1026,6 +1051,7 @@ dns-luadns dns-njalla dns-noris dns-plesk +dns-simply dns-nsone dns-ovh dns-rfc2136 diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 3a7db35f582..6cda377d9d1 100644 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -23,6 +23,7 @@ ARG \ CERTBOT_DNS_JOKER_VERSION \ CERTBOT_DNS_NAMECHEAP_VERSION \ CERTBOT_DNS_NORISNETWORK_VERSION \ + CERTBOT_DNS_SIMPLY_VERSION \ CERTBOT_DNS_TRANSIP_VERSION \ CERTBOT_DNS_PORKBUN_VERSION \ CERTBOT_DNS_WEBSUPPORT_VERSION \ @@ -77,6 +78,7 @@ RUN \ certbot-dns-route53==${CERTBOT_VERSION} \ certbot-dns-sakuracloud==${CERTBOT_VERSION} \ certbot-dns-namecheap==${CERTBOT_DNS_NAMECHEAP_VERSION} \ + certbot-dns-simply==${CERTBOT_DNS_SIMPLY_VERSION} \ certbot-dns-netcup==${CERTBOT_NETCUP_VERSION} \ certbot-plugin-gandi==${CERTBOT_GANDI_VERSION} \ certbot-dns-transip==${CERTBOT_DNS_TRANSIP_VERSION} \ diff --git a/letsencrypt/build.yaml b/letsencrypt/build.yaml index 16456d5e3a1..1a265b03ef6 100644 --- a/letsencrypt/build.yaml +++ b/letsencrypt/build.yaml @@ -30,6 +30,7 @@ args: CERTBOT_DNS_TRANSIP_VERSION: 0.5.2 CERTBOT_DNS_PORKBUN_VERSION: 0.8.0 CERTBOT_DNS_WEBSUPPORT_VERSION: 2.0.1 + CERTBOT_DNS_SIMPLY_VERSION: 0.1.0 CERTBOT_GANDI_VERSION: 1.5.0 CERTBOT_NETCUP_VERSION: 1.4.3 CERTBOT_NJALLA_VERSION: 1.0.0 diff --git a/letsencrypt/config.yaml b/letsencrypt/config.yaml index 8edc3aed4cd..3942f10258d 100644 --- a/letsencrypt/config.yaml +++ b/letsencrypt/config.yaml @@ -1,5 +1,5 @@ --- -version: 5.1.0 +version: 5.1.1 slug: letsencrypt name: Let's Encrypt description: Manage certificate from Let's Encrypt @@ -85,6 +85,8 @@ schema: netcup_api_key: str? netcup_api_password: str? netcup_customer_id: str? + simply_api_key: str? + simply_account_name: str? njalla_token: str? noris_token: str? nsone_api_key: str? @@ -100,7 +102,7 @@ schema: dns-duckdns|dns-dynu|dns-gehirn|dns-google|dns-google-domains|\ dns-hetzner|dns-infomaniak|dns-joker|dns-linode|dns-luadns|dns-njalla|dns-nsone|\ dns-porkbun|dns-ovh|dns-rfc2136|dns-route53|dns-sakuracloud|\ - dns-namecheap|dns-netcup|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ + dns-namecheap|dns-netcup|dns-simply|dns-gandi|dns-transip|dns-inwx|dns-dreamhost|\ dns-he|dns-easydns|dns-domainoffensive|dns-websupport|dns-noris|dns-plesk)?" rfc2136_algorithm: str? rfc2136_name: str? diff --git a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh index fb3206a1160..ade1ef89e23 100755 --- a/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh +++ b/letsencrypt/rootfs/etc/cont-init.d/file-structure.sh @@ -35,6 +35,8 @@ echo -e "dns_desec_token = $(bashio::config 'dns.desec_token')\n" \ "dns_netcup_customer_id = $(bashio::config 'dns.netcup_customer_id')\n" \ "dns_netcup_api_key = $(bashio::config 'dns.netcup_api_key')\n" \ "dns_netcup_api_password = $(bashio::config 'dns.netcup_api_password')\n" \ + "dns_simply_account_name = $(bashio::config 'dns.simply_account_name')\n" \ + "dns_simply_api_key = $(bashio::config 'dns.simply_api_key')\n" \ "dns_njalla_token = $(bashio::config 'dns.njalla_token')\n" \ "dns_noris_token = $(bashio::config 'dns.noris_token')\n" \ "dns_nsone_api_key = $(bashio::config 'dns.nsone_api_key')\n" \ diff --git a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run index 7525ca55785..3464a3c2ad8 100755 --- a/letsencrypt/rootfs/etc/services.d/lets-encrypt/run +++ b/letsencrypt/rootfs/etc/services.d/lets-encrypt/run @@ -72,6 +72,12 @@ elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-netcup" ]; then bashio::config.require 'dns.netcup_api_password' PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") +#Simply +elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-simply" ]; then + bashio::config.require 'dns.simply_account_name' + bashio::config.require 'dns.simply_api_key' + PROVIDER_ARGUMENTS+=("--authenticator" "${DNS_PROVIDER}" "--${DNS_PROVIDER}-credentials" "/data/dnsapikey" "--${DNS_PROVIDER}-propagation-seconds" "${PROPAGATION_SECONDS}") + #TransIP elif [ "${CHALLENGE}" == "dns" ] && [ "${DNS_PROVIDER}" == "dns-transip" ]; then bashio::config.require.username 'dns.transip_username'