From ec7f5c2a4bf3f2475158bd5ace86e2752d11f56b Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Thu, 10 Aug 2017 18:34:40 +0200 Subject: [PATCH 1/2] security/acme-client: add support for new DNS API hooks, closes #213 --- .../AcmeClient/forms/dialogValidation.xml | 160 ++++++++++++++++++ .../models/OPNsense/AcmeClient/AcmeClient.xml | 15 +- .../OPNsense/AcmeClient/certhelper.php | 39 +++++ 3 files changed, 212 insertions(+), 2 deletions(-) diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml index b5de4608c..92e25735f 100644 --- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml @@ -193,6 +193,30 @@ text + + + header + + + + + validation.dns_dgon_key + + text + + + + + header + + + + + validation.dns_dnsimple_token + + text + + header @@ -228,6 +252,58 @@ text + + + header + + + + validation.dns_duckdns_token + + text + + + + + header + + + + validation.dns_dyn_customer + + text + + + + validation.dns_dyn_user + + text + + + + validation.dns_dyn_password + + text + + + + + + header + + + + validation.dns_dynu_clientid + + text + + + + validation.dns_dynu_secret + + text + + header @@ -275,6 +351,40 @@ text + + + header + + + + validation.dns_he_user + + text + + + + validation.dns_he_password + + text + + + + + header + + + + validation.dns_infoblox_credentials + + text + Use the following format: username:password + + + validation.dns_infoblox_server + + text + Enter either the IP address or FQDN of your Infoblox appliance. + header @@ -373,6 +483,34 @@ text + + + header + + + + validation.dns_namecom_user + + text + + + + validation.dns_namecom_token + + text + + + + + header + + + + validation.dns_nsone_key + + text + + header @@ -442,4 +580,26 @@ text + + + header + + + + validation.dns_vscale_key + + text + + + + + header + + + + validation.dns_yandex_token + + text + + diff --git a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml index 1b6d82f43..aee2e2119 100644 --- a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml +++ b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml @@ -325,19 +325,30 @@ CloudFlare.com API CloudXNS.com API cyon.ch API - Domain-Offensive API + DigitalOcean API + DNSimple API + DNSMadeEasy.com API + Domain-Offensive/Resellerinterface/Domainrobot API DNSPod.cn API + DuckDNS API + Dyn Managed DNS API + Dynu API FreeDNS API Gandi LiveDNS API GoDaddy.com API + Hurricane Electric + Infoblox API ISPConfig 3.1+ API lexicon DNS API Linode API LuaDNS.com API - DNSMadeEasy.com API + Name.com API + NS1.com API nsupdate (RFC 2136) OVH, kimsufi, soyoustart and runabove API PowerDNS.com API + Vscale API + Yandex PDD API diff --git a/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php b/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php index 59aca7547..4aecac91d 100755 --- a/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php +++ b/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php @@ -607,6 +607,12 @@ function run_acme_validation($certObj, $valObj, $acctObj) $proc_env['CY_Username'] = (string)$valObj->dns_cyon_user; $proc_env['CY_Password'] = (string)$valObj->dns_cyon_user; break; + case 'dns_dgon': + $proc_env['DO_API_KEY'] = (string)$valObj->dns_dgon_key; + break; + case 'dns_dnsimple': + $proc_env['DNSimple_OAUTH_TOKEN'] = (string)$valObj->dns_dnsimple_token; + break; case 'dns_do': $proc_env['DO_PID'] = (string)$valObj->dns_do_pid; $proc_env['DO_PW'] = (string)$valObj->dns_do_password; @@ -615,6 +621,18 @@ function run_acme_validation($certObj, $valObj, $acctObj) $proc_env['DP_Id'] = (string)$valObj->dns_dp_id; $proc_env['DP_Key'] = (string)$valObj->dns_dp_key; break; + case 'dns_duckdns': + $proc_env['DuckDNS_Token'] = (string)$valObj->dns_duckdns_token; + break; + case 'dns_dyn': + $proc_env['DYN_Customer'] = (string)$valObj->dns_dyn_customer; + $proc_env['DYN_Username'] = (string)$valObj->dns_dyn_user; + $proc_env['DYN_Password'] = (string)$valObj->dns_dyn_password; + break; + case 'dns_dynu': + $proc_env['Dynu_ClientId'] = (string)$valObj->dns_dynu_clientid; + $proc_env['Dynu_Secret'] = (string)$valObj->dns_dynu_secret; + break; case 'dns_freedns': $proc_env['FREEDNS_User'] = (string)$valObj->dns_freedns_user; $proc_env['FREEDNS_Password'] = (string)$valObj->dns_freedns_password; @@ -626,6 +644,14 @@ function run_acme_validation($certObj, $valObj, $acctObj) $proc_env['GD_Key'] = (string)$valObj->dns_gd_key; $proc_env['GD_Secret'] = (string)$valObj->dns_gd_secret; break; + case 'dns_he': + $proc_env['HE_Username'] = (string)$valObj->dns_he_user; + $proc_env['HE_Password'] = (string)$valObj->dns_he_password; + break; + case 'dns_infoblox': + $proc_env['Infoblox_Creds'] = (string)$valObj->dns_infoblox_credentials; + $proc_env['Infoblox_Server'] = (string)$valObj->dns_infoblox_server; + break; case 'dns_ispconfig': $proc_env['ISPC_User'] = (string)$valObj->dns_ispconfig_user; $proc_env['ISPC_Password'] = (string)$valObj->dns_ispconfig_password; @@ -655,6 +681,13 @@ function run_acme_validation($certObj, $valObj, $acctObj) $proc_env['ME_Key'] = (string)$valObj->dns_me_key; $proc_env['ME_Secret'] = (string)$valObj->dns_me_secret; break; + case 'dns_namecom': + $proc_env['Namecom_Username'] = (string)$valObj->dns_namecom_user; + $proc_env['Namecom_Token'] = (string)$valObj->dns_namecom_token; + break; + case 'dns_nsone': + $proc_env['NS1_Key'] = (string)$valObj->dns_nsone_key; + break; case 'dns_nsupdate': // Write secret key to filesystem $secret_key_data = (string)$valObj->dns_nsupdate_key . "\n"; @@ -674,6 +707,12 @@ function run_acme_validation($certObj, $valObj, $acctObj) $proc_env['PDNS_ServerId'] = (string)$valObj->dns_pdns_serverid; $proc_env['PDNS_Token'] = (string)$valObj->dns_pdns_token; break; + case 'dns_vscale': + $proc_env['VSCALE_API_KEY'] = (string)$valObj->dns_vscale_key; + break; + case 'dns_yandex': + $proc_env['PDD_Token'] = (string)$valObj->dns_yandex_token; + break; default: log_error("AcmeClient: invalid DNS-01 service specified: " . (string)$valObj->dns_service); return(1); From c89005d1b63bbe4ef179a85d29bc2d60ff4b9881 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Fri, 11 Aug 2017 00:24:42 +0200 Subject: [PATCH 2/2] security/acme-client: style fixes --- .../AcmeClient/forms/dialogValidation.xml | 104 ++++-------------- 1 file changed, 21 insertions(+), 83 deletions(-) diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml index 92e25735f..692fa72d2 100644 --- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml @@ -32,7 +32,6 @@ validation.http_service dropdown - @@ -88,7 +87,6 @@ validation.dns_service dropdown - validation.dns_sleep @@ -105,7 +103,6 @@ validation.dns_ad_key text - @@ -116,13 +113,11 @@ validation.dns_ali_key text - validation.dns_ali_secret text - @@ -133,13 +128,11 @@ validation.dns_aws_id text - validation.dns_aws_secret text - @@ -150,13 +143,11 @@ validation.dns_cf_email text - validation.dns_cf_key text - @@ -167,73 +158,61 @@ validation.dns_cx_key text - validation.dns_cx_secret text - - - header - - + + header + validation.dns_cyon_user text - validation.dns_cyon_password text - - - header - - + + header + validation.dns_dgon_key text - - - header - - + + header + validation.dns_dnsimple_token text - - - header - - + + header + validation.dns_do_pid text - validation.dns_do_password text - @@ -244,13 +223,11 @@ validation.dns_dp_id text - validation.dns_dp_key text - @@ -261,7 +238,6 @@ validation.dns_duckdns_token text - @@ -272,21 +248,17 @@ validation.dns_dyn_customer text - validation.dns_dyn_user text - validation.dns_dyn_password text - - header @@ -296,43 +268,36 @@ validation.dns_dynu_clientid text - validation.dns_dynu_secret text - - - header - - + + header + validation.dns_freedns_user text - validation.dns_freedns_password text - - - header - - + + header + validation.dns_gandi_livedns_key text - @@ -343,13 +308,11 @@ validation.dns_gd_key text - validation.dns_gd_secret text - @@ -360,13 +323,11 @@ validation.dns_he_user text - validation.dns_he_password text - @@ -394,25 +355,21 @@ validation.dns_ispconfig_user text - validation.dns_ispconfig_password text - validation.dns_ispconfig_api text - validation.dns_ispconfig_insecure checkbox - @@ -423,31 +380,26 @@ validation.dns_lexicon_provider dropdown - validation.dns_lexicon_user text - validation.dns_lexicon_token text - - - header - - + + header + validation.dns_linode_key text - @@ -458,13 +410,11 @@ validation.dns_lua_email text - validation.dns_lua_key text - @@ -475,13 +425,11 @@ validation.dns_me_key text - validation.dns_me_secret text - @@ -492,13 +440,11 @@ validation.dns_namecom_user text - validation.dns_namecom_token text - @@ -509,7 +455,6 @@ validation.dns_nsone_key text - @@ -520,7 +465,6 @@ validation.dns_nsupdate_server text - validation.dns_nsupdate_key @@ -537,19 +481,16 @@ validation.dns_ovh_app_key text - validation.dns_ovh_app_secret text - validation.dns_ovh_consumer_key text - validation.dns_ovh_endpoint @@ -578,7 +519,6 @@ validation.dns_pdns_token text - @@ -589,7 +529,6 @@ validation.dns_vscale_key text - @@ -600,6 +539,5 @@ validation.dns_yandex_token text -