diff --git a/src/js/setupdns.js b/src/js/setupdns.js
index 678b8b3e2..498869e24 100644
--- a/src/js/setupdns.js
+++ b/src/js/setupdns.js
@@ -24,7 +24,9 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
$scope.hyphenatedSubdomains = false;
$scope.tlsProvider = [
{ name: 'Let\'s Encrypt Prod', value: 'letsencrypt-prod' },
+ { name: 'Let\'s Encrypt Wildcard Prod', value: 'letsencrypt-prod-wildcard' },
{ name: 'Let\'s Encrypt Staging', value: 'letsencrypt-staging' },
+ { name: 'Let\'s Encrypt Wildcard Staging', value: 'letsencrypt-staging-wildcard' },
{ name: 'Self-Signed', value: 'fallback' }, // this is not 'Custom' because we don't allow user to upload certs during setup phase
];
@@ -146,7 +148,16 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
data.token = $scope.dnsCredentials.nameComToken;
}
- Client.setupDnsConfig($scope.dnsCredentials.domain, $scope.dnsCredentials.zoneName, provider, data, $scope.dnsCredentials.tlsConfig, function (error) {
+ var tlsConfig = {
+ provider: $scope.dnsCredentials.tlsConfig.provider,
+ wildcard: false
+ };
+ if ($scope.dnsCredentials.tlsConfig.provider.indexOf('-wildcard') !== -1) {
+ tlsConfig.provider = tlsConfig.provider.replace('-wildcard', '');
+ tlsConfig.wildcard = true;
+ }
+
+ Client.setupDnsConfig($scope.dnsCredentials.domain, $scope.dnsCredentials.zoneName, provider, data, tlsConfig, function (error) {
if (error && error.statusCode === 401) {
$scope.dnsCredentials.busy = false;
$scope.error = 'Wrong instance id provided.';
diff --git a/src/setupdns.html b/src/setupdns.html
index 99a011338..89270f87f 100644
--- a/src/setupdns.html
+++ b/src/setupdns.html
@@ -148,15 +148,13 @@
-
+
Setup A records for *.{{ dnsCredentials.domain || 'example.com' }} and {{ dnsCredentials.domain || 'example.com' }} to this server's IP.
-
-
- Setup an A record for my.{{ dnsCredentials.domain || 'example.com' }} to this server's IP.
-
+
+ Setup an A record for my.{{ dnsCredentials.domain || 'example.com' }} to this server's IP.
@@ -188,6 +186,7 @@
Certificate Provider
+ Let's Encrypt requires your server to be reachable on port 80
diff --git a/src/views/domains.html b/src/views/domains.html
index 43381d3cd..b2f469a49 100644
--- a/src/views/domains.html
+++ b/src/views/domains.html
@@ -84,11 +84,11 @@
-
+
Setup A records for *.{{ domainConfigure.newDomain || domainConfigure.domain.domain }} and {{ domainConfigure.newDomain || domainConfigure.domain.domain }} to this server's IP.
-
+
All DNS records have to be setup manually before each app installation.
@@ -110,6 +110,7 @@
Certificate Provider
+ Let's Encrypt requires your server to be reachable on port 80
diff --git a/src/views/domains.js b/src/views/domains.js
index a2b007fe8..84dd8b322 100644
--- a/src/views/domains.js
+++ b/src/views/domains.js
@@ -8,9 +8,12 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
$scope.config = Client.getConfig();
$scope.domains = [];
$scope.ready = false;
+ // currently, validation of wildcard with various provider is done server side
$scope.tlsProvider = [
{ name: 'Let\'s Encrypt Prod', value: 'letsencrypt-prod' },
+ { name: 'Let\'s Encrypt Wildcard Prod', value: 'letsencrypt-prod-wildcard' },
{ name: 'Let\'s Encrypt Staging', value: 'letsencrypt-staging' },
+ { name: 'Let\'s Encrypt Wildcard Staging', value: 'letsencrypt-staging-wildcard' },
{ name: 'Custom Wildcard Certificate', value: 'fallback' },
];
@@ -153,6 +156,9 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
$scope.domainConfigure.provider = domain.provider;
$scope.domainConfigure.tlsConfig.provider = domain.tlsConfig.provider;
+ if (domain.tlsConfig.provider.indexOf('letsencrypt') === 0) {
+ if (domain.tlsConfig.wildcard) $scope.domainConfigure.tlsConfig.provider += '-wildcard';
+ }
$scope.domainConfigure.zoneName = domain.zoneName;
$scope.domainConfigure.hyphenatedSubdomains = !!domain.config.hyphenatedSubdomains;
@@ -216,10 +222,19 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat
};
}
+ var tlsConfig = {
+ provider: $scope.domainConfigure.tlsConfig.provider,
+ wildcard: false
+ };
+ if ($scope.domainConfigure.tlsConfig.provider.indexOf('-wildcard') !== -1) {
+ tlsConfig.provider = tlsConfig.provider.replace('-wildcard', '');
+ tlsConfig.wildcard = true;
+ }
+
// choose the right api, since we reuse this for adding and configuring domains
var func;
- if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, $scope.domainConfigure.tlsConfig);
- else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, $scope.domainConfigure.tlsConfig);
+ if ($scope.domainConfigure.adding) func = Client.addDomain.bind(Client, $scope.domainConfigure.newDomain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, tlsConfig);
+ else func = Client.updateDomain.bind(Client, $scope.domainConfigure.domain.domain, $scope.domainConfigure.zoneName, provider, data, fallbackCertificate, tlsConfig);
func(function (error) {
$scope.domainConfigure.busy = false;