Fixed root cert link when using multi-domains, #2883.
Ylian Saint-Hilaire committed
Jul 10, 2021 at 13:22 UTC
1b9f398a4f666bd02c74e8b3135444a63be4fd28
1 file changed
+10
-5
webserver.js
+10
-5
@@ -2874,7 +2874,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2874
getRenderPage((domain.sitestyle == 2) ? 'login2' : 'login', req, domain),
2875
getRenderArgs({
2876
loginmode: loginmode,
2877
- rootCertLink: getRootCertLink(),
2877
+ rootCertLink: getRootCertLink(domain),
2878
newAccount: newAccountsAllowed,
2879
newAccountPass: (((domain.newaccountspass == null) || (domain.newaccountspass == '')) ? 0 : 1),
2880
serverDnsName: obj.getWebServerName(domain),
@@ -2960,9 +2960,14 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2960
}
2961
2962
// Get the link to the root certificate if needed
2963
- function getRootCertLink() {
2963
+ function getRootCertLink(domain) {
2964
// Check if the HTTPS certificate is issued from MeshCentralRoot, if so, add download link to root certificate.
2965
- if ((obj.args.tlsoffload == null) && (obj.parent.config.letsencrypt == null) && (obj.tlsSniCredentials == null) && (obj.certificates.WebIssuer.indexOf('MeshCentralRoot-') == 0) && (obj.certificates.CommonName.indexOf('.') != -1)) { return '<a href=/MeshServerRootCert.cer title="Download the root certificate for this server">Root Certificate</a>'; }
2965
+ if (obj.isTrustedCert(domain) == false) {
2966
+ // Get the domain suffix
2967
+ var xdomain = (domain.dns == null) ? domain.id : '';
2968
+ if (xdomain != '') xdomain += '/';
2969
+ return '<a href=/' + xdomain + 'MeshServerRootCert.cer title="Download the root certificate for this server">Root Certificate</a>';
2970
+ }
2971
return '';
2972
}
2973
@@ -3193,10 +3198,10 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3198
setContentDispositionHeader(res, 'application/octet-stream', filename, null, 'file.bin');
3199
try { res.sendFile(obj.path.resolve(__dirname, path)); } catch (e) { res.sendStatus(404); }
3200
} else {
3196
- render(req, res, getRenderPage((domain.sitestyle == 2) ? 'download2' : 'download', req, domain), getRenderArgs({ rootCertLink: getRootCertLink(), messageid: 1, fileurl: req.path + '?download=1', filename: filename, filesize: stat.size }, req, domain));
3201
+ render(req, res, getRenderPage((domain.sitestyle == 2) ? 'download2' : 'download', req, domain), getRenderArgs({ rootCertLink: getRootCertLink(domain), messageid: 1, fileurl: req.path + '?download=1', filename: filename, filesize: stat.size }, req, domain));
3202
}
3203
} else {
3199
- render(req, res, getRenderPage((domain.sitestyle == 2) ? 'download2' : 'download', req, domain), getRenderArgs({ rootCertLink: getRootCertLink(), messageid: 2 }, req, domain));
3204
+ render(req, res, getRenderPage((domain.sitestyle == 2) ? 'download2' : 'download', req, domain), getRenderArgs({ rootCertLink: getRootCertLink(domain), messageid: 2 }, req, domain));
3205
}
3206
}
3207