From 7d693a4271135ffc2f4201dc47df9aa9792ee2e2 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Tue, 3 Nov 2020 21:28:50 +0100 Subject: [PATCH 1/5] Expands and refactors dns plugin list --- global/certbot-dns-plugins.js | 170 +++++++++++++++++++--------------- 1 file changed, 97 insertions(+), 73 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index e87425c..3fdd5ef 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -10,9 +10,9 @@ * display_name: "Name displayed to the user", * package_name: "Package name in PyPi repo", * package_version: "Package version in PyPi repo", + * dependencies: "Additional dependencies, space separated (as you would pass it to pip install)", * credentials: `Template of the credentials file`, * full_plugin_name: "The full plugin name as used in the commandline with certbot, including prefixes, e.g. 'certbot-dns-njalla:dns-njalla'", - * credentials_file: Whether the plugin has a credentials file * }, * ... * } @@ -21,37 +21,41 @@ module.exports = { cloudflare: { - display_name: 'Cloudflare', - package_name: 'certbot-dns-cloudflare', - package_version: '1.8.0', - credentials: `# Cloudflare API token + display_name: 'Cloudflare', + package_name: 'certbot-dns-cloudflare', + package_version: '1.8.0', + dependencies: '', + credentials: `# Cloudflare API token dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, full_plugin_name: 'dns-cloudflare', }, //####################################################// cloudxns: { - display_name: 'CloudXNS', - package_name: 'certbot-dns-cloudxns', - package_version: '1.8.0', - credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef + display_name: 'CloudXNS', + package_name: 'certbot-dns-cloudxns', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef dns_cloudxns_secret_key = 1122334455667788`, full_plugin_name: 'dns-cloudxns', }, //####################################################// corenetworks: { - display_name: 'Core Networks', - package_name: 'certbot-dns-corenetworks', - package_version: '0.1.4', - credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r + display_name: 'Core Networks', + package_name: 'certbot-dns-corenetworks', + package_version: '0.1.4', + dependencies: '', + credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r certbot_dns_corenetworks:dns_corenetworks_password = secure_password`, full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks', }, //####################################################// cpanel: { - display_name: 'cPanel', - package_name: 'certbot-dns-cpanel', - package_version: '0.2.2', - credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083 + display_name: 'cPanel', + package_name: 'certbot-dns-cpanel', + package_version: '0.2.2', + dependencies: '', + credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083 certbot_dns_cpanel:cpanel_username = user certbot_dns_cpanel:cpanel_password = hunter2`, full_plugin_name: 'certbot-dns-cpanel:cpanel', @@ -61,15 +65,17 @@ certbot_dns_cpanel:cpanel_password = hunter2`, display_name: 'DigitalOcean', package_name: 'certbot-dns-digitalocean', package_version: '1.8.0', + dependencies: '', credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', full_plugin_name: 'dns-digitalocean', }, //####################################################// directadmin: { - display_name: 'DirectAdmin', - package_name: 'certbot-dns-directadmin', - package_version: '0.0.20', - credentials: `directadmin_url = https://my.directadminserver.com:2222 + display_name: 'DirectAdmin', + package_name: 'certbot-dns-directadmin', + package_version: '0.0.20', + dependencies: '', + credentials: `directadmin_url = https://my.directadminserver.com:2222 directadmin_username = username directadmin_password = aSuperStrongPassword`, full_plugin_name: 'certbot-dns-directadmin:directadmin', @@ -79,33 +85,37 @@ directadmin_password = aSuperStrongPassword`, display_name: 'DNSimple', package_name: 'certbot-dns-dnsimple', package_version: '1.8.0', + dependencies: '', credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', full_plugin_name: 'dns-dnsimple', }, //####################################################// dnsmadeeasy: { - display_name: 'DNS Made Easy', - package_name: 'certbot-dns-dnsmadeeasy', - package_version: '1.8.0', - credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a + display_name: 'DNS Made Easy', + package_name: 'certbot-dns-dnsmadeeasy', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`, full_plugin_name: 'dns-dnsmadeeasy', }, //####################################################// dnspod: { - display_name: 'DNSPod', - package_name: 'certbot-dns-dnspod', - package_version: '0.1.0', - credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL" + display_name: 'DNSPod', + package_name: 'certbot-dns-dnspod', + package_version: '0.1.0', + dependencies: '', + credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL" certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// google: { - display_name: 'Google', - package_name: 'certbot-dns-google', - package_version: '1.8.0', - credentials: `{ + display_name: 'Google', + package_name: 'certbot-dns-google', + package_version: '1.8.0', + dependencies: '', + credentials: `{ "type": "service_account", ... }`, @@ -116,15 +126,17 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, display_name: 'Hetzner', package_name: 'certbot-dns-hetzner', package_version: '1.0.4', + dependencies: '', credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', full_plugin_name: 'certbot-dns-hetzner:dns-hetzner', }, //####################################################// inwx: { - display_name: 'INWX', - package_name: 'certbot-dns-inwx', - package_version: '2.1.2', - credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/ + display_name: 'INWX', + package_name: 'certbot-dns-inwx', + package_version: '2.1.2', + dependencies: '', + credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/ certbot_dns_inwx:dns_inwx_username = your_username certbot_dns_inwx:dns_inwx_password = your_password certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`, @@ -132,47 +144,52 @@ certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`, }, //####################################################// ispconfig: { - display_name: 'ISPConfig', - package_name: 'certbot-dns-ispconfig', - package_version: '0.2.0', - credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser + display_name: 'ISPConfig', + package_name: 'certbot-dns-ispconfig', + package_version: '0.2.0', + dependencies: '', + credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser certbot_dns_ispconfig:dns_ispconfig_password = verysecureremoteuserpassword certbot_dns_ispconfig:dns_ispconfig_endpoint = https://localhost:8080`, full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig', }, //####################################################// isset: { - display_name: 'Isset', - package_name: 'certbot-dns-isset', - package_version: '0.0.3', - credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api" + display_name: 'Isset', + package_name: 'certbot-dns-isset', + package_version: '0.0.3', + dependencies: '', + credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api" certbot_dns_isset:dns_isset_token=""`, full_plugin_name: 'certbot-dns-isset:dns-isset', }, //####################################################// linode: { - display_name: 'Linode', - package_name: 'certbot-dns-linode', - package_version: '1.8.0', - credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 + display_name: 'Linode', + package_name: 'certbot-dns-linode', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 dns_linode_version = [|3|4]`, full_plugin_name: 'dns-linode', }, //####################################################// luadns: { - display_name: 'LuaDNS', - package_name: 'certbot-dns-luadns', - package_version: '1.8.0', - credentials: `dns_luadns_email = user@example.com + display_name: 'LuaDNS', + package_name: 'certbot-dns-luadns', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_luadns_email = user@example.com dns_luadns_token = 0123456789abcdef0123456789abcdef`, full_plugin_name: 'dns-luadns', }, //####################################################// netcup: { - display_name: 'netcup', - package_name: 'certbot-dns-netcup', - package_version: '1.0.0', - credentials: `dns_netcup_customer_id = 123456 + display_name: 'netcup', + package_name: 'certbot-dns-netcup', + package_version: '1.0.0', + dependencies: '', + credentials: `dns_netcup_customer_id = 123456 dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, full_plugin_name: 'certbot-dns-netcup:dns-netcup', @@ -182,6 +199,7 @@ dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, display_name: 'Njalla', package_name: 'certbot-dns-njalla', package_version: '1.0.0', + dependencies: '', credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', full_plugin_name: 'certbot-dns-njalla:dns-njalla', }, @@ -190,15 +208,17 @@ dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, display_name: 'NS1', package_name: 'certbot-dns-nsone', package_version: '1.8.0', + dependencies: '', credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', full_plugin_name: 'dns-nsone', }, //####################################################// ovh: { - display_name: 'OVH', - package_name: 'certbot-dns-ovh', - package_version: '1.8.0', - credentials: `dns_ovh_endpoint = ovh-eu + display_name: 'OVH', + package_name: 'certbot-dns-ovh', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_ovh_endpoint = ovh-eu dns_ovh_application_key = MDAwMDAwMDAwMDAw dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, @@ -206,19 +226,21 @@ dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, }, //####################################################// powerdns: { - display_name: 'PowerDNS', - package_name: 'certbot-dns-powerdns', - package_version: '0.2.0', - credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org + display_name: 'PowerDNS', + package_name: 'certbot-dns-powerdns', + package_version: '0.2.0', + dependencies: '', + credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`, full_plugin_name: 'certbot-dns-powerdns:dns-powerdns', }, //####################################################// rfc2136: { - display_name: 'RFC 2136', - package_name: 'certbot-dns-rfc2136', - package_version: '1.8.0', - credentials: `# Target DNS server + display_name: 'RFC 2136', + package_name: 'certbot-dns-rfc2136', + package_version: '1.8.0', + dependencies: '', + credentials: `# Target DNS server dns_rfc2136_server = 192.0.2.1 # Target DNS port dns_rfc2136_port = 53 @@ -232,10 +254,11 @@ dns_rfc2136_algorithm = HMAC-SHA512`, }, //####################################################// route53: { - display_name: 'Route 53 (Amazon)', - package_name: 'certbot-dns-route53', - package_version: '1.8.0', - credentials: `[default] + display_name: 'Route 53 (Amazon)', + package_name: 'certbot-dns-route53', + package_version: '1.8.0', + dependencies: '', + credentials: `[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, full_plugin_name: 'dns-route53', @@ -245,6 +268,7 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, display_name: 'Vultr', package_name: 'certbot-dns-vultr', package_version: '1.0.3', + dependencies: '', credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, From 60a40197f13c93294c5c480daebb95cf853a851c Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Tue, 3 Nov 2020 21:59:18 +0100 Subject: [PATCH 2/5] Always install additional dependencies for dns plugins --- backend/internal/certificate.js | 2 +- backend/setup.js | 4 ++-- docker/Dockerfile | 1 + docker/dev/Dockerfile | 1 + global/certbot-dns-plugins.js | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 13f172e..6f1fc4d 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -790,7 +790,7 @@ const internalCertificate = { const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id; const credentials_cmd = 'echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\''; - const prepare_cmd = 'pip3 install ' + dns_plugin.package_name + '==' + dns_plugin.package_version; + const prepare_cmd = 'pip3 install ' + dns_plugin.package_name + '==' + dns_plugin.package_version + ' ' + dns_plugin.dependencies; // Whether the plugin has a ---credentials argument const has_config_arg = certificate.meta.dns_provider !== 'route53'; diff --git a/backend/setup.js b/backend/setup.js index 7e18c92..24429e8 100644 --- a/backend/setup.js +++ b/backend/setup.js @@ -176,9 +176,9 @@ const setupCertbotPlugins = () => { certificates.map(function (certificate) { if (certificate.meta && certificate.meta.dns_challenge === true) { const dns_plugin = dns_plugins[certificate.meta.dns_provider]; - const package_to_install = `${dns_plugin.package_name}==${dns_plugin.package_version}`; + const packages_to_install = `${dns_plugin.package_name}==${dns_plugin.package_version} ${dns_plugin.dependencies}`; - if (plugins.indexOf(package_to_install) === -1) plugins.push(package_to_install); + if (plugins.indexOf(packages_to_install) === -1) plugins.push(packages_to_install); // Make sure credentials file exists const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id; diff --git a/docker/Dockerfile b/docker/Dockerfile index acac5fa..011f5d6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -38,6 +38,7 @@ COPY global /app/global WORKDIR /app RUN yarn install +RUN mkdir -p /etc/letsencrypt/credentials # Remove frontend service not required for prod, dev nginx config as well RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 45ee534..2d06d16 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -18,6 +18,7 @@ RUN cd /usr \ COPY rootfs / RUN rm -f /etc/nginx/conf.d/production.conf +RUN mkdir -p /etc/letsencrypt/credentials # s6 overlay RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz" \ diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 3fdd5ef..5ae1872 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -24,7 +24,7 @@ module.exports = { display_name: 'Cloudflare', package_name: 'certbot-dns-cloudflare', package_version: '1.8.0', - dependencies: '', + dependencies: 'cloudflare', credentials: `# Cloudflare API token dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, full_plugin_name: 'dns-cloudflare', From a3159ad59e2f1b15878ec89384b0021183da78e4 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Tue, 3 Nov 2020 22:24:03 +0100 Subject: [PATCH 3/5] Converts tabs to spaces --- global/certbot-dns-plugins.js | 294 +++++++++++++++++----------------- 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 5ae1872..7bcf1ce 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -21,226 +21,226 @@ module.exports = { cloudflare: { - display_name: 'Cloudflare', - package_name: 'certbot-dns-cloudflare', - package_version: '1.8.0', - dependencies: 'cloudflare', - credentials: `# Cloudflare API token + display_name: 'Cloudflare', + package_name: 'certbot-dns-cloudflare', + package_version: '1.8.0', + dependencies: 'cloudflare', + credentials: `# Cloudflare API token dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, - full_plugin_name: 'dns-cloudflare', + full_plugin_name: 'dns-cloudflare', }, //####################################################// cloudxns: { - display_name: 'CloudXNS', - package_name: 'certbot-dns-cloudxns', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef + display_name: 'CloudXNS', + package_name: 'certbot-dns-cloudxns', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef dns_cloudxns_secret_key = 1122334455667788`, - full_plugin_name: 'dns-cloudxns', + full_plugin_name: 'dns-cloudxns', }, //####################################################// corenetworks: { - display_name: 'Core Networks', - package_name: 'certbot-dns-corenetworks', - package_version: '0.1.4', - dependencies: '', - credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r + display_name: 'Core Networks', + package_name: 'certbot-dns-corenetworks', + package_version: '0.1.4', + dependencies: '', + credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r certbot_dns_corenetworks:dns_corenetworks_password = secure_password`, - full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks', + full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks', }, //####################################################// cpanel: { - display_name: 'cPanel', - package_name: 'certbot-dns-cpanel', - package_version: '0.2.2', - dependencies: '', - credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083 + display_name: 'cPanel', + package_name: 'certbot-dns-cpanel', + package_version: '0.2.2', + dependencies: '', + credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083 certbot_dns_cpanel:cpanel_username = user certbot_dns_cpanel:cpanel_password = hunter2`, - full_plugin_name: 'certbot-dns-cpanel:cpanel', + full_plugin_name: 'certbot-dns-cpanel:cpanel', }, //####################################################// digitalocean: { - display_name: 'DigitalOcean', - package_name: 'certbot-dns-digitalocean', - package_version: '1.8.0', - dependencies: '', - credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', - full_plugin_name: 'dns-digitalocean', + display_name: 'DigitalOcean', + package_name: 'certbot-dns-digitalocean', + package_version: '1.8.0', + dependencies: '', + credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', + full_plugin_name: 'dns-digitalocean', }, //####################################################// directadmin: { - display_name: 'DirectAdmin', - package_name: 'certbot-dns-directadmin', - package_version: '0.0.20', - dependencies: '', - credentials: `directadmin_url = https://my.directadminserver.com:2222 + display_name: 'DirectAdmin', + package_name: 'certbot-dns-directadmin', + package_version: '0.0.20', + dependencies: '', + credentials: `directadmin_url = https://my.directadminserver.com:2222 directadmin_username = username directadmin_password = aSuperStrongPassword`, - full_plugin_name: 'certbot-dns-directadmin:directadmin', + full_plugin_name: 'certbot-dns-directadmin:directadmin', }, //####################################################// dnsimple: { - display_name: 'DNSimple', - package_name: 'certbot-dns-dnsimple', - package_version: '1.8.0', - dependencies: '', - credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', - full_plugin_name: 'dns-dnsimple', + display_name: 'DNSimple', + package_name: 'certbot-dns-dnsimple', + package_version: '1.8.0', + dependencies: '', + credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', + full_plugin_name: 'dns-dnsimple', }, //####################################################// dnsmadeeasy: { - display_name: 'DNS Made Easy', - package_name: 'certbot-dns-dnsmadeeasy', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a + display_name: 'DNS Made Easy', + package_name: 'certbot-dns-dnsmadeeasy', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`, - full_plugin_name: 'dns-dnsmadeeasy', + full_plugin_name: 'dns-dnsmadeeasy', }, //####################################################// dnspod: { - display_name: 'DNSPod', - package_name: 'certbot-dns-dnspod', - package_version: '0.1.0', - dependencies: '', - credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL" + display_name: 'DNSPod', + package_name: 'certbot-dns-dnspod', + package_version: '0.1.0', + dependencies: '', + credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL" certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, - full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', + full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// google: { - display_name: 'Google', - package_name: 'certbot-dns-google', - package_version: '1.8.0', - dependencies: '', - credentials: `{ - "type": "service_account", - ... + display_name: 'Google', + package_name: 'certbot-dns-google', + package_version: '1.8.0', + dependencies: '', + credentials: `{ +"type": "service_account", +... }`, - full_plugin_name: 'dns-google', + full_plugin_name: 'dns-google', }, //####################################################// hetzner: { - display_name: 'Hetzner', - package_name: 'certbot-dns-hetzner', - package_version: '1.0.4', - dependencies: '', - credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', - full_plugin_name: 'certbot-dns-hetzner:dns-hetzner', + display_name: 'Hetzner', + package_name: 'certbot-dns-hetzner', + package_version: '1.0.4', + dependencies: '', + credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', + full_plugin_name: 'certbot-dns-hetzner:dns-hetzner', }, //####################################################// inwx: { - display_name: 'INWX', - package_name: 'certbot-dns-inwx', - package_version: '2.1.2', - dependencies: '', - credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/ + display_name: 'INWX', + package_name: 'certbot-dns-inwx', + package_version: '2.1.2', + dependencies: '', + credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/ certbot_dns_inwx:dns_inwx_username = your_username certbot_dns_inwx:dns_inwx_password = your_password certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`, - full_plugin_name: 'certbot-dns-inwx:dns-inwx', + full_plugin_name: 'certbot-dns-inwx:dns-inwx', }, //####################################################// ispconfig: { - display_name: 'ISPConfig', - package_name: 'certbot-dns-ispconfig', - package_version: '0.2.0', - dependencies: '', - credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser + display_name: 'ISPConfig', + package_name: 'certbot-dns-ispconfig', + package_version: '0.2.0', + dependencies: '', + credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser certbot_dns_ispconfig:dns_ispconfig_password = verysecureremoteuserpassword certbot_dns_ispconfig:dns_ispconfig_endpoint = https://localhost:8080`, - full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig', + full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig', }, //####################################################// isset: { - display_name: 'Isset', - package_name: 'certbot-dns-isset', - package_version: '0.0.3', - dependencies: '', - credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api" + display_name: 'Isset', + package_name: 'certbot-dns-isset', + package_version: '0.0.3', + dependencies: '', + credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api" certbot_dns_isset:dns_isset_token=""`, - full_plugin_name: 'certbot-dns-isset:dns-isset', + full_plugin_name: 'certbot-dns-isset:dns-isset', }, //####################################################// linode: { - display_name: 'Linode', - package_name: 'certbot-dns-linode', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 + display_name: 'Linode', + package_name: 'certbot-dns-linode', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 dns_linode_version = [|3|4]`, - full_plugin_name: 'dns-linode', + full_plugin_name: 'dns-linode', }, //####################################################// luadns: { - display_name: 'LuaDNS', - package_name: 'certbot-dns-luadns', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_luadns_email = user@example.com + display_name: 'LuaDNS', + package_name: 'certbot-dns-luadns', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_luadns_email = user@example.com dns_luadns_token = 0123456789abcdef0123456789abcdef`, - full_plugin_name: 'dns-luadns', + full_plugin_name: 'dns-luadns', }, //####################################################// netcup: { - display_name: 'netcup', - package_name: 'certbot-dns-netcup', - package_version: '1.0.0', - dependencies: '', - credentials: `dns_netcup_customer_id = 123456 + display_name: 'netcup', + package_name: 'certbot-dns-netcup', + package_version: '1.0.0', + dependencies: '', + credentials: `dns_netcup_customer_id = 123456 dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: 'certbot-dns-netcup:dns-netcup', + full_plugin_name: 'certbot-dns-netcup:dns-netcup', }, //####################################################// njalla: { - display_name: 'Njalla', - package_name: 'certbot-dns-njalla', - package_version: '1.0.0', - dependencies: '', - credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', - full_plugin_name: 'certbot-dns-njalla:dns-njalla', + display_name: 'Njalla', + package_name: 'certbot-dns-njalla', + package_version: '1.0.0', + dependencies: '', + credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', + full_plugin_name: 'certbot-dns-njalla:dns-njalla', }, //####################################################// nsone: { - display_name: 'NS1', - package_name: 'certbot-dns-nsone', - package_version: '1.8.0', - dependencies: '', - credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', - full_plugin_name: 'dns-nsone', + display_name: 'NS1', + package_name: 'certbot-dns-nsone', + package_version: '1.8.0', + dependencies: '', + credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', + full_plugin_name: 'dns-nsone', }, //####################################################// ovh: { - display_name: 'OVH', - package_name: 'certbot-dns-ovh', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_ovh_endpoint = ovh-eu + display_name: 'OVH', + package_name: 'certbot-dns-ovh', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_ovh_endpoint = ovh-eu dns_ovh_application_key = MDAwMDAwMDAwMDAw dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, - full_plugin_name: 'dns-ovh', + full_plugin_name: 'dns-ovh', }, //####################################################// powerdns: { - display_name: 'PowerDNS', - package_name: 'certbot-dns-powerdns', - package_version: '0.2.0', - dependencies: '', - credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org + display_name: 'PowerDNS', + package_name: 'certbot-dns-powerdns', + package_version: '0.2.0', + dependencies: '', + credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`, - full_plugin_name: 'certbot-dns-powerdns:dns-powerdns', + full_plugin_name: 'certbot-dns-powerdns:dns-powerdns', }, //####################################################// rfc2136: { - display_name: 'RFC 2136', - package_name: 'certbot-dns-rfc2136', - package_version: '1.8.0', - dependencies: '', - credentials: `# Target DNS server + display_name: 'RFC 2136', + package_name: 'certbot-dns-rfc2136', + package_version: '1.8.0', + dependencies: '', + credentials: `# Target DNS server dns_rfc2136_server = 192.0.2.1 # Target DNS port dns_rfc2136_port = 53 @@ -250,26 +250,26 @@ dns_rfc2136_name = keyname. dns_rfc2136_secret = 4q4wM/2I180UXoMyN4INVhJNi8V9BCV+jMw2mXgZw/CSuxUT8C7NKKFs AmKd7ak51vWKgSl12ib86oQRPkpDjg== # TSIG key algorithm dns_rfc2136_algorithm = HMAC-SHA512`, - full_plugin_name: 'dns-rfc2136', + full_plugin_name: 'dns-rfc2136', }, //####################################################// route53: { - display_name: 'Route 53 (Amazon)', - package_name: 'certbot-dns-route53', - package_version: '1.8.0', - dependencies: '', - credentials: `[default] + display_name: 'Route 53 (Amazon)', + package_name: 'certbot-dns-route53', + package_version: '1.8.0', + dependencies: '', + credentials: `[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, - full_plugin_name: 'dns-route53', + full_plugin_name: 'dns-route53', }, //####################################################// vultr: { - display_name: 'Vultr', - package_name: 'certbot-dns-vultr', - package_version: '1.0.3', - dependencies: '', - credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', - full_plugin_name: 'certbot-dns-vultr:dns-vultr', + display_name: 'Vultr', + package_name: 'certbot-dns-vultr', + package_version: '1.0.3', + dependencies: '', + credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', + full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, -}; +}; \ No newline at end of file From 32e51557837b4f668750338d8067a571e114a6db Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Tue, 3 Nov 2020 22:38:09 +0100 Subject: [PATCH 4/5] Fixes Linting errors --- backend/setup.js | 2 +- global/certbot-dns-plugins.js | 288 +++++++++++++++++----------------- 2 files changed, 145 insertions(+), 145 deletions(-) diff --git a/backend/setup.js b/backend/setup.js index 24429e8..76957be 100644 --- a/backend/setup.js +++ b/backend/setup.js @@ -175,7 +175,7 @@ const setupCertbotPlugins = () => { certificates.map(function (certificate) { if (certificate.meta && certificate.meta.dns_challenge === true) { - const dns_plugin = dns_plugins[certificate.meta.dns_provider]; + const dns_plugin = dns_plugins[certificate.meta.dns_provider]; const packages_to_install = `${dns_plugin.package_name}==${dns_plugin.package_version} ${dns_plugin.dependencies}`; if (plugins.indexOf(packages_to_install) === -1) plugins.push(packages_to_install); diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 7bcf1ce..d0afafd 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -21,226 +21,226 @@ module.exports = { cloudflare: { - display_name: 'Cloudflare', - package_name: 'certbot-dns-cloudflare', - package_version: '1.8.0', - dependencies: 'cloudflare', - credentials: `# Cloudflare API token + display_name: 'Cloudflare', + package_name: 'certbot-dns-cloudflare', + package_version: '1.8.0', + dependencies: 'cloudflare', + credentials: `# Cloudflare API token dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, - full_plugin_name: 'dns-cloudflare', + full_plugin_name: 'dns-cloudflare', }, //####################################################// cloudxns: { - display_name: 'CloudXNS', - package_name: 'certbot-dns-cloudxns', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef + display_name: 'CloudXNS', + package_name: 'certbot-dns-cloudxns', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef dns_cloudxns_secret_key = 1122334455667788`, - full_plugin_name: 'dns-cloudxns', + full_plugin_name: 'dns-cloudxns', }, //####################################################// corenetworks: { - display_name: 'Core Networks', - package_name: 'certbot-dns-corenetworks', - package_version: '0.1.4', - dependencies: '', - credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r + display_name: 'Core Networks', + package_name: 'certbot-dns-corenetworks', + package_version: '0.1.4', + dependencies: '', + credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r certbot_dns_corenetworks:dns_corenetworks_password = secure_password`, - full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks', + full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks', }, //####################################################// cpanel: { - display_name: 'cPanel', - package_name: 'certbot-dns-cpanel', - package_version: '0.2.2', - dependencies: '', - credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083 + display_name: 'cPanel', + package_name: 'certbot-dns-cpanel', + package_version: '0.2.2', + dependencies: '', + credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083 certbot_dns_cpanel:cpanel_username = user certbot_dns_cpanel:cpanel_password = hunter2`, - full_plugin_name: 'certbot-dns-cpanel:cpanel', + full_plugin_name: 'certbot-dns-cpanel:cpanel', }, //####################################################// digitalocean: { - display_name: 'DigitalOcean', - package_name: 'certbot-dns-digitalocean', - package_version: '1.8.0', - dependencies: '', - credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', - full_plugin_name: 'dns-digitalocean', + display_name: 'DigitalOcean', + package_name: 'certbot-dns-digitalocean', + package_version: '1.8.0', + dependencies: '', + credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', + full_plugin_name: 'dns-digitalocean', }, //####################################################// directadmin: { - display_name: 'DirectAdmin', - package_name: 'certbot-dns-directadmin', - package_version: '0.0.20', - dependencies: '', - credentials: `directadmin_url = https://my.directadminserver.com:2222 + display_name: 'DirectAdmin', + package_name: 'certbot-dns-directadmin', + package_version: '0.0.20', + dependencies: '', + credentials: `directadmin_url = https://my.directadminserver.com:2222 directadmin_username = username directadmin_password = aSuperStrongPassword`, - full_plugin_name: 'certbot-dns-directadmin:directadmin', + full_plugin_name: 'certbot-dns-directadmin:directadmin', }, //####################################################// dnsimple: { - display_name: 'DNSimple', - package_name: 'certbot-dns-dnsimple', - package_version: '1.8.0', - dependencies: '', - credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', - full_plugin_name: 'dns-dnsimple', + display_name: 'DNSimple', + package_name: 'certbot-dns-dnsimple', + package_version: '1.8.0', + dependencies: '', + credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', + full_plugin_name: 'dns-dnsimple', }, //####################################################// dnsmadeeasy: { - display_name: 'DNS Made Easy', - package_name: 'certbot-dns-dnsmadeeasy', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a + display_name: 'DNS Made Easy', + package_name: 'certbot-dns-dnsmadeeasy', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`, - full_plugin_name: 'dns-dnsmadeeasy', + full_plugin_name: 'dns-dnsmadeeasy', }, //####################################################// dnspod: { - display_name: 'DNSPod', - package_name: 'certbot-dns-dnspod', - package_version: '0.1.0', - dependencies: '', - credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL" + display_name: 'DNSPod', + package_name: 'certbot-dns-dnspod', + package_version: '0.1.0', + dependencies: '', + credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL" certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, - full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', + full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// google: { - display_name: 'Google', - package_name: 'certbot-dns-google', - package_version: '1.8.0', - dependencies: '', - credentials: `{ + display_name: 'Google', + package_name: 'certbot-dns-google', + package_version: '1.8.0', + dependencies: '', + credentials: `{ "type": "service_account", ... }`, - full_plugin_name: 'dns-google', + full_plugin_name: 'dns-google', }, //####################################################// hetzner: { - display_name: 'Hetzner', - package_name: 'certbot-dns-hetzner', - package_version: '1.0.4', - dependencies: '', - credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', - full_plugin_name: 'certbot-dns-hetzner:dns-hetzner', + display_name: 'Hetzner', + package_name: 'certbot-dns-hetzner', + package_version: '1.0.4', + dependencies: '', + credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', + full_plugin_name: 'certbot-dns-hetzner:dns-hetzner', }, //####################################################// inwx: { - display_name: 'INWX', - package_name: 'certbot-dns-inwx', - package_version: '2.1.2', - dependencies: '', - credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/ + display_name: 'INWX', + package_name: 'certbot-dns-inwx', + package_version: '2.1.2', + dependencies: '', + credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/ certbot_dns_inwx:dns_inwx_username = your_username certbot_dns_inwx:dns_inwx_password = your_password certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`, - full_plugin_name: 'certbot-dns-inwx:dns-inwx', + full_plugin_name: 'certbot-dns-inwx:dns-inwx', }, //####################################################// ispconfig: { - display_name: 'ISPConfig', - package_name: 'certbot-dns-ispconfig', - package_version: '0.2.0', - dependencies: '', - credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser + display_name: 'ISPConfig', + package_name: 'certbot-dns-ispconfig', + package_version: '0.2.0', + dependencies: '', + credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser certbot_dns_ispconfig:dns_ispconfig_password = verysecureremoteuserpassword certbot_dns_ispconfig:dns_ispconfig_endpoint = https://localhost:8080`, - full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig', + full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig', }, //####################################################// isset: { - display_name: 'Isset', - package_name: 'certbot-dns-isset', - package_version: '0.0.3', - dependencies: '', - credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api" + display_name: 'Isset', + package_name: 'certbot-dns-isset', + package_version: '0.0.3', + dependencies: '', + credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api" certbot_dns_isset:dns_isset_token=""`, - full_plugin_name: 'certbot-dns-isset:dns-isset', + full_plugin_name: 'certbot-dns-isset:dns-isset', }, //####################################################// linode: { - display_name: 'Linode', - package_name: 'certbot-dns-linode', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 + display_name: 'Linode', + package_name: 'certbot-dns-linode', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 dns_linode_version = [|3|4]`, - full_plugin_name: 'dns-linode', + full_plugin_name: 'dns-linode', }, //####################################################// luadns: { - display_name: 'LuaDNS', - package_name: 'certbot-dns-luadns', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_luadns_email = user@example.com + display_name: 'LuaDNS', + package_name: 'certbot-dns-luadns', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_luadns_email = user@example.com dns_luadns_token = 0123456789abcdef0123456789abcdef`, - full_plugin_name: 'dns-luadns', + full_plugin_name: 'dns-luadns', }, //####################################################// netcup: { - display_name: 'netcup', - package_name: 'certbot-dns-netcup', - package_version: '1.0.0', - dependencies: '', - credentials: `dns_netcup_customer_id = 123456 + display_name: 'netcup', + package_name: 'certbot-dns-netcup', + package_version: '1.0.0', + dependencies: '', + credentials: `dns_netcup_customer_id = 123456 dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: 'certbot-dns-netcup:dns-netcup', + full_plugin_name: 'certbot-dns-netcup:dns-netcup', }, //####################################################// njalla: { - display_name: 'Njalla', - package_name: 'certbot-dns-njalla', - package_version: '1.0.0', - dependencies: '', - credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', - full_plugin_name: 'certbot-dns-njalla:dns-njalla', + display_name: 'Njalla', + package_name: 'certbot-dns-njalla', + package_version: '1.0.0', + dependencies: '', + credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', + full_plugin_name: 'certbot-dns-njalla:dns-njalla', }, //####################################################// nsone: { - display_name: 'NS1', - package_name: 'certbot-dns-nsone', - package_version: '1.8.0', - dependencies: '', - credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', - full_plugin_name: 'dns-nsone', + display_name: 'NS1', + package_name: 'certbot-dns-nsone', + package_version: '1.8.0', + dependencies: '', + credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', + full_plugin_name: 'dns-nsone', }, //####################################################// ovh: { - display_name: 'OVH', - package_name: 'certbot-dns-ovh', - package_version: '1.8.0', - dependencies: '', - credentials: `dns_ovh_endpoint = ovh-eu + display_name: 'OVH', + package_name: 'certbot-dns-ovh', + package_version: '1.8.0', + dependencies: '', + credentials: `dns_ovh_endpoint = ovh-eu dns_ovh_application_key = MDAwMDAwMDAwMDAw dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, - full_plugin_name: 'dns-ovh', + full_plugin_name: 'dns-ovh', }, //####################################################// powerdns: { - display_name: 'PowerDNS', - package_name: 'certbot-dns-powerdns', - package_version: '0.2.0', - dependencies: '', - credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org + display_name: 'PowerDNS', + package_name: 'certbot-dns-powerdns', + package_version: '0.2.0', + dependencies: '', + credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`, - full_plugin_name: 'certbot-dns-powerdns:dns-powerdns', + full_plugin_name: 'certbot-dns-powerdns:dns-powerdns', }, //####################################################// rfc2136: { - display_name: 'RFC 2136', - package_name: 'certbot-dns-rfc2136', - package_version: '1.8.0', - dependencies: '', - credentials: `# Target DNS server + display_name: 'RFC 2136', + package_name: 'certbot-dns-rfc2136', + package_version: '1.8.0', + dependencies: '', + credentials: `# Target DNS server dns_rfc2136_server = 192.0.2.1 # Target DNS port dns_rfc2136_port = 53 @@ -250,26 +250,26 @@ dns_rfc2136_name = keyname. dns_rfc2136_secret = 4q4wM/2I180UXoMyN4INVhJNi8V9BCV+jMw2mXgZw/CSuxUT8C7NKKFs AmKd7ak51vWKgSl12ib86oQRPkpDjg== # TSIG key algorithm dns_rfc2136_algorithm = HMAC-SHA512`, - full_plugin_name: 'dns-rfc2136', + full_plugin_name: 'dns-rfc2136', }, //####################################################// route53: { - display_name: 'Route 53 (Amazon)', - package_name: 'certbot-dns-route53', - package_version: '1.8.0', - dependencies: '', - credentials: `[default] + display_name: 'Route 53 (Amazon)', + package_name: 'certbot-dns-route53', + package_version: '1.8.0', + dependencies: '', + credentials: `[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, - full_plugin_name: 'dns-route53', + full_plugin_name: 'dns-route53', }, //####################################################// vultr: { - display_name: 'Vultr', - package_name: 'certbot-dns-vultr', - package_version: '1.0.3', - dependencies: '', - credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', - full_plugin_name: 'certbot-dns-vultr:dns-vultr', + display_name: 'Vultr', + package_name: 'certbot-dns-vultr', + package_version: '1.0.3', + dependencies: '', + credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', + full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, }; \ No newline at end of file From cb014027bb9412d20913b296e30d613da53d413f Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Wed, 4 Nov 2020 19:31:40 +0100 Subject: [PATCH 5/5] Makes sure credentials folder exist every time before saving credentials --- backend/internal/certificate.js | 2 +- backend/setup.js | 2 +- docker/Dockerfile | 1 - docker/dev/Dockerfile | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 6f1fc4d..19e0592 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -789,7 +789,7 @@ const internalCertificate = { logger.info(`Requesting Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`); const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id; - const credentials_cmd = 'echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\''; + const credentials_cmd = 'mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\''; const prepare_cmd = 'pip3 install ' + dns_plugin.package_name + '==' + dns_plugin.package_version + ' ' + dns_plugin.dependencies; // Whether the plugin has a ---credentials argument diff --git a/backend/setup.js b/backend/setup.js index 76957be..2a5ba96 100644 --- a/backend/setup.js +++ b/backend/setup.js @@ -182,7 +182,7 @@ const setupCertbotPlugins = () => { // Make sure credentials file exists const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id; - const credentials_cmd = '[ -f \'' + credentials_loc + '\' ] || { mkdir /etc/letsencrypt/credentials; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\'; }'; + const credentials_cmd = '[ -f \'' + credentials_loc + '\' ] || { mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\'; }'; promises.push(utils.exec(credentials_cmd)); } }); diff --git a/docker/Dockerfile b/docker/Dockerfile index 011f5d6..acac5fa 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -38,7 +38,6 @@ COPY global /app/global WORKDIR /app RUN yarn install -RUN mkdir -p /etc/letsencrypt/credentials # Remove frontend service not required for prod, dev nginx config as well RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 2d06d16..45ee534 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -18,7 +18,6 @@ RUN cd /usr \ COPY rootfs / RUN rm -f /etc/nginx/conf.d/production.conf -RUN mkdir -p /etc/letsencrypt/credentials # s6 overlay RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz" \