From 433d0b4e5d53bb04e314e0c1c3f2563762e11eb6 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Tue, 14 May 2019 21:00:33 +0200 Subject: [PATCH] security/acme-client: add support for dns_namecheap --- .../AcmeClient/forms/dialogValidation.xml | 21 +++++++++++++++++++ .../models/OPNsense/AcmeClient/AcmeClient.xml | 10 +++++++++ .../OPNsense/AcmeClient/certhelper.php | 10 +++++++++ 3 files changed, 41 insertions(+) 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 706e5006f..77078e9e9 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 @@ -596,6 +596,27 @@ text + + + header + + + + validation.dns_namecheap_user + + text + + + validation.dns_namecheap_api + + text + + + validation.dns_namecheap_sourceip + + text + true + header 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 f737a1717..91046d2d4 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 @@ -375,6 +375,7 @@ Linode API LuaDNS.com API Name.com API + Namecheap API Namesilo.com API NS1.com API nsupdate (RFC 2136) @@ -601,6 +602,15 @@ N + + N + + + N + + + N + N 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 3f979e1bd..d1a1bd6ee 100755 --- a/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php +++ b/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php @@ -712,6 +712,16 @@ 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_namecheap': + $proc_env['NAMECHEAP_USERNAME'] = (string)$valObj->dns_namecheap_user; + $proc_env['NAMECHEAP_API_KEY'] = (string)$valObj->dns_namecheap_api; + if (!empty((string)$valObj->dns_namecheap_sourceip)) { + $proc_env['NAMECHEAP_SOURCEIP'] = (string)$valObj->dns_namecheap_sourceip; + } else { + // Use a public service to get our source IP for Namecheap API + $proc_env['NAMECHEAP_SOURCEIP'] = 'https://ifconfig.co/ip'; + } + break; case 'dns_namecom': $proc_env['Namecom_Username'] = (string)$valObj->dns_namecom_user; $proc_env['Namecom_Token'] = (string)$valObj->dns_namecom_token;