diff --git a/webadmin/src/views/certs.html b/webadmin/src/views/certs.html index ebe0d1e3a..bf2037ee0 100644 --- a/webadmin/src/views/certs.html +++ b/webadmin/src/views/certs.html @@ -35,6 +35,17 @@ + +
+ This domain must be hosted on Cloudflare. +
+Setup A records for *.{{ dnsCredentials.customDomain || 'example.com' }} and {{ dnsCredentials.customDomain || 'example.com' }} to this server's IP.
diff --git a/webadmin/src/views/certs.js b/webadmin/src/views/certs.js index 0fbcf9797..95b527e67 100644 --- a/webadmin/src/views/certs.js +++ b/webadmin/src/views/certs.js @@ -10,6 +10,7 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio $scope.dnsProvider = [ { name: 'AWS Route53', value: 'route53' }, { name: 'Digital Ocean', value: 'digitalocean' }, + { name: 'Cloudflare', value: 'cloudflare' }, { name: 'Wildcard', value: 'wildcard' }, { name: 'Manual (not recommended)', value: 'manual' }, { name: 'No-op (only for development)', value: 'noop' } @@ -43,6 +44,8 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio accessKeyId: '', secretAccessKey: '', digitalOceanToken: '', + cloudflareToken: '', + cloudflareEmail: '', provider: 'route53', password: '' }; @@ -115,10 +118,7 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio var migrateDomain = $scope.dnsCredentials.customDomain !== $scope.config.fqdn; var data = { - provider: $scope.dnsCredentials.provider, - accessKeyId: $scope.dnsCredentials.accessKeyId, - secretAccessKey: $scope.dnsCredentials.secretAccessKey, - token: $scope.dnsCredentials.digitalOceanToken + provider: $scope.dnsCredentials.provider }; // special case the wildcard provider @@ -127,6 +127,16 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio data.wildcard = true; } + if (data.provider === 'route53') { + data.accessKeyId = $scope.dnsCredentials.accessKeyId; + data.secretAccessKey = $scope.dnsCredentials.secretAccessKey; + } else if (data.provider === 'digitalocean') { + data.token = $scope.dnsCredentials.digitalOceanToken; + } else if (data.provider === 'cloudflare') { + data.token = $scope.dnsCredentials.cloudflareToken; + data.email = $scope.dnsCredentials.cloudflareEmail; + } + var func; if (migrateDomain) { data.domain = $scope.dnsCredentials.customDomain; @@ -141,10 +151,6 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio } else { $scope.dnsCredentials.success = true; - $scope.dnsConfig.accessKeyId = $scope.dnsCredentials.accessKeyId; - $scope.dnsConfig.secretAccessKey = $scope.dnsCredentials.secretAccessKey; - $scope.dnsConfig.token = $scope.dnsCredentials.digitalOceanToken; - $('#dnsCredentialsModal').modal('hide'); dnsCredentialsReset(); @@ -173,6 +179,8 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio $scope.dnsCredentials.accessKeyId = ''; $scope.dnsCredentials.secretAccessKey = ''; $scope.dnsCredentials.digitalOceanToken = ''; + $scope.dnsCredentials.cloudflareToken = ''; + $scope.dnsCredentials.cloudflareEmail = ''; $scope.dnsCredentials.password = ''; $scope.dnsCredentialsForm.$setPristine(); @@ -189,6 +197,8 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio $scope.dnsCredentials.accessKeyId = $scope.dnsConfig.accessKeyId; $scope.dnsCredentials.secretAccessKey = $scope.dnsConfig.secretAccessKey; $scope.dnsCredentials.digitalOceanToken = $scope.dnsConfig.provider === 'digitalocean' ? $scope.dnsConfig.token : ''; + $scope.dnsCredentials.cloudflareToken = $scope.dnsConfig.provider === 'cloudflare' ? $scope.dnsConfig.token : ''; + $scope.dnsCredentials.cloudflareEmail = $scope.dnsConfig.email; $scope.dnsCredentials.provider = $scope.dnsConfig.provider === 'caas' ? 'route53' : $scope.dnsConfig.provider; $scope.dnsCredentials.provider = ($scope.dnsCredentials.provider === 'manual' && $scope.dnsConfig.wildcard) ? 'wildcard' : $scope.dnsCredentials.provider;