From d636502eaa8805e74791350d4635f3a026d99bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Pelayo?= Date: Mon, 26 Apr 2021 20:25:24 +0200 Subject: [PATCH 1/3] Add DuckDNS certbot plugin Uses https://github.com/infinityofspace/certbot_dns_duckdns certbot plugin to implement DuckDNS DNS challenge in order to obtain Wildcard certificates. Requires that the user inserts his duckDNS token in "Credentials File Content" input box. --- backend/internal/certificate.js | 6 +++++- global/certbot-dns-plugins.js | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 030b344..11306fe 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -808,7 +808,7 @@ const internalCertificate = { 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'; + const has_config_arg = certificate.meta.dns_provider !== 'route53' && certificate.meta.dns_provider !== 'duckdns'; let main_cmd = certbot_command + ' certonly --non-interactive ' + @@ -834,6 +834,10 @@ const internalCertificate = { main_cmd = 'AWS_CONFIG_FILE=\'' + credentials_loc + '\' ' + main_cmd; } + if (certificate.meta.dns_provider === 'duckdns') { + main_cmd = main_cmd + ' --' + dns_plugin.full_plugin_name + '-token ' + certificate.meta.dns_provider_credentials; + } + if (debug_mode) { logger.info('Command:', `${credentials_cmd} && ${prepare_cmd} && ${main_cmd}`); } diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index d71191c..a86f80d 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -322,4 +322,13 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', }, + //####################################################// + duckdns: { + display_name: 'DuckDNS', + package_name: 'certbot-dns-duckdns', + package_version: '0.5', + dependencies: '', + credentials: ``, + full_plugin_name: 'certbot-dns-duckdns:dns-duckdns', + }, }; From 656a7dceef7a17260b22e31bd6b05a1c72a9e815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Pelayo?= Date: Mon, 26 Apr 2021 22:31:16 +0200 Subject: [PATCH 2/3] Correct spacing --- global/certbot-dns-plugins.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index a86f80d..2c37538 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -322,13 +322,13 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', }, - //####################################################// - duckdns: { - display_name: 'DuckDNS', - package_name: 'certbot-dns-duckdns', - package_version: '0.5', - dependencies: '', - credentials: ``, + //####################################################// + duckdns: { + display_name: 'DuckDNS', + package_name: 'certbot-dns-duckdns', + package_version: '0.5', + dependencies: '', + credentials: '', full_plugin_name: 'certbot-dns-duckdns:dns-duckdns', }, }; From 91044e730bd0015ede3bf2e77b434f2ab6fd6ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Pelayo?= Date: Mon, 26 Apr 2021 22:35:52 +0200 Subject: [PATCH 3/3] Correct indentation --- global/certbot-dns-plugins.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 2c37538..a503b46 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -322,8 +322,8 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', }, - //####################################################// - duckdns: { + //####################################################// + duckdns: { display_name: 'DuckDNS', package_name: 'certbot-dns-duckdns', package_version: '0.5',