diff --git a/security/acme-client/Makefile b/security/acme-client/Makefile
index dbcaa30d8..4b6be15b0 100644
--- a/security/acme-client/Makefile
+++ b/security/acme-client/Makefile
@@ -1,6 +1,5 @@
PLUGIN_NAME= acme-client
PLUGIN_VERSION= 1.9
-PLUGIN_REVISION= 1
PLUGIN_COMMENT= Let's Encrypt client
PLUGIN_MAINTAINER= opnsense@moov.de
PLUGIN_DEPENDS= acme.sh bind911
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..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,49 +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
+
+
+
+ validation.dns_dnsimple_token
+
+ text
+
+
+
+ header
+
validation.dns_do_pid
text
-
validation.dns_do_password
text
-
@@ -220,43 +223,81 @@
validation.dns_dp_id
text
-
validation.dns_dp_key
text
-
-
- header
-
-
+
+ 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
+
validation.dns_freedns_user
text
-
validation.dns_freedns_password
text
-
-
- header
-
-
+
+ header
+
validation.dns_gandi_livedns_key
text
-
@@ -267,13 +308,43 @@
validation.dns_gd_key
text
-
validation.dns_gd_secret
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.
@@ -284,25 +355,21 @@
validation.dns_ispconfig_user
text
-
validation.dns_ispconfig_password
text
-
validation.dns_ispconfig_api
text
-
validation.dns_ispconfig_insecure
checkbox
-
@@ -313,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
-
@@ -348,13 +410,11 @@
validation.dns_lua_email
text
-
validation.dns_lua_key
text
-
@@ -365,13 +425,36 @@
validation.dns_me_key
text
-
validation.dns_me_secret
text
-
+
+
+
+ header
+
+
+
+ validation.dns_namecom_user
+
+ text
+
+
+ validation.dns_namecom_token
+
+ text
+
+
+
+ header
+
+
+
+ validation.dns_nsone_key
+
+ text
@@ -382,7 +465,6 @@
validation.dns_nsupdate_server
text
-
validation.dns_nsupdate_key
@@ -399,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
@@ -440,6 +519,25 @@
validation.dns_pdns_token
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 cce421604..da8ba20ec 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/mvc/app/views/OPNsense/AcmeClient/certificates.volt b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt
index d7ecdc49b..c479ca808 100644
--- a/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt
+++ b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt
@@ -119,25 +119,6 @@ POSSIBILITY OF SUCH DAMAGE.
},
};
- /**
- * standard dialog when confirmation is required, wrapper around BootstrapDialog
- */
- function stdDialogConfirmation(message, callback) {
- BootstrapDialog.confirm({
- title: 'Confirmation Required',
- message: message,
- type:BootstrapDialog.TYPE_DANGER,
- btnCancelLabel: 'Cancel',
- btnOKLabel: 'Yes',
- btnOKClass: 'btn-primary',
- callback: function(result) {
- if(result) {
- callback();
- }
- }
- });
- }
-
/**
* reload bootgrid, return to current selected page
*/
@@ -198,7 +179,9 @@ POSSIBILITY OF SUCH DAMAGE.
// link delete selected items action
$(this).find("*[data-action=deleteSelected]").click(function(){
if ( gridParams['del'] != undefined) {
- stdDialogRemoveItem("Remove selected items?",function(){
+ stdDialogConfirm('{{ lang._('Confirm removal') }}',
+ '{{ lang._('Do you want to remove the selected item?') }}',
+ '{{ lang._('Yes') }}', '{{ lang._('Cancel') }}', function () {
var rows =$("#"+gridId).bootgrid('getSelectedRows');
if (rows != undefined){
var deferreds = [];
@@ -300,7 +283,9 @@ POSSIBILITY OF SUCH DAMAGE.
{
if (gridParams['del'] != undefined) {
var uuid=$(this).data("row-id");
- stdDialogRemoveItem('Remove selected item?',function() {
+ stdDialogConfirm('{{ lang._('Confirm removal') }}',
+ '{{ lang._('Do you want to remove the selected item?') }}',
+ '{{ lang._('Yes') }}', '{{ lang._('Cancel') }}', function () {
ajaxCall(url=gridParams['del'] + uuid,
sendData={},callback=function(data,status){
// reload grid after delete
@@ -334,7 +319,9 @@ POSSIBILITY OF SUCH DAMAGE.
{
if (gridParams['sign'] != undefined) {
var uuid=$(this).data("row-id");
- stdDialogConfirmation('Forcefully (re-)issue the selected certificate?',function() {
+ stdDialogConfirm('{{ lang._('Confirmation Required') }}',
+ '{{ lang._('Forcefully (re-)issue the selected certificate?') }}',
+ '{{ lang._('Yes') }}', '{{ lang._('Cancel') }}', function() {
// Handle HAProxy integration (no-op if not applicable)
ajaxCall(url="/api/acmeclient/settings/fetchHAProxyIntegration", sendData={}, callback=function(data,status) {
ajaxCall(url=gridParams['sign'] + uuid,sendData={},callback=function(data,status){
@@ -354,13 +341,15 @@ POSSIBILITY OF SUCH DAMAGE.
{
if (gridParams['revoke'] != undefined) {
var uuid=$(this).data("row-id");
- stdDialogConfirmation('Revoke selected certificate?',function() {
+ stdDialogConfirm('{{ lang._('Confirmation Required') }}',
+ '{{ lang._('Revoke selected certificate?') }}',
+ '{{ lang._('Yes') }}', '{{ lang._('Cancel') }}', function() {
ajaxCall(url=gridParams['revoke'] + uuid,
sendData={},callback=function(data,status){
// reload grid after sign
$("#"+gridId).bootgrid("reload");
});
- });
+ }, 'danger');
} else {
console.log("[grid] action revoke missing")
}
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);