浏览代码

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.
Héctor Pelayo 4 年之前
父节点
当前提交
d636502eaa
共有 2 个文件被更改,包括 14 次插入1 次删除
  1. 5 1
      backend/internal/certificate.js
  2. 9 0
      global/certbot-dns-plugins.js

+ 5 - 1
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 --<name>-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}`);
 		}

+ 9 - 0
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:     `<DUCKDNS_TOKEN>`,
+		full_plugin_name: 'certbot-dns-duckdns:dns-duckdns',
+	},
 };