Skip to content

Commit

Permalink
fix(ssl): default domains missing in acme domains
Browse files Browse the repository at this point in the history
  • Loading branch information
pimartin committed Dec 15, 2020
1 parent ef2ef9c commit 719fef8
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 8 deletions.
20 changes: 14 additions & 6 deletions src/caddy/config/ssl.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { URL } from 'url';
import { getBranchDomain } from '../../entities/sites/get-branch-domain';
import { getSiteDomain } from '../../entities/sites/get-site-domain';
import { ManualSslConfiguration, Site } from '../../entities/sites/site';
import { env } from '../../env/env';
import { unique } from '../../utils/arrays-utils';
Expand All @@ -25,24 +27,30 @@ export function generateManualCertificatesConfig(sites: Site[]) {
}

export function generateServerTlsConfig(sites: Site[]) {
const sitesDomains = sites.flatMap(site => site.domains);
const acmeDomains = [
const sitesCustomDomains = sites.flatMap(site => site.domains);
const sitesMainDomainNames = sites
.map(site => getSiteDomain(site));
const sitesBranchesDomainNames = sites
.flatMap(site => site.branches
.map(branch => getBranchDomain(site, branch)));
const acmeDomainNames = [
meliUrl.hostname,
meliUiUrl.hostname,
...sitesDomains
...sitesCustomDomains
.filter(domain => domain.sslConfiguration?.type === 'acme')
.map(domain => domain.name),
...sitesMainDomainNames,
...sitesBranchesDomainNames,
].filter(unique);
const manualCertificatesDomains = sitesDomains
const manualCertificatesDomains = sitesCustomDomains
.filter(domain => domain.sslConfiguration?.type !== 'acme');

return {
tls_connection_policies: [
{
match: {
sni: acmeDomains,
sni: acmeDomainNames,
},
// TODO if manual certificate was given for meli, use it (leave as is for acme)
},
...manualCertificatesDomains.map(domain => ({
match: {
Expand Down
10 changes: 10 additions & 0 deletions src/entities/sites/get-branch-domain.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { URL } from 'url';
import { env } from '../../env/env';
import { Branch } from './branch';
import { Site } from './site';

const sitesUrl = new URL(env.MELI_SITES_URL);

export function getBranchDomain(site: Site, branch: Branch) {
return `${branch.name}.${site.name}.${sitesUrl.host}`;
}
3 changes: 2 additions & 1 deletion src/entities/sites/get-branch-url.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Branch } from './branch';
import { env } from '../../env/env';
import { getBranchDomain } from './get-branch-domain';
import { Site } from './site';
import { URL } from 'url';

const sitesUrl = new URL(env.MELI_SITES_URL);

export function getBranchUrl(site: Site, branch: Branch) {
return `${sitesUrl.protocol}//${branch.name}.${site.name}.${sitesUrl.host}`;
return `${sitesUrl.protocol}//${getBranchDomain(site, branch)}`;
}
9 changes: 9 additions & 0 deletions src/entities/sites/get-site-domain.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { URL } from 'url';
import { env } from '../../env/env';
import { Site } from './site';

const sitesUrl = new URL(env.MELI_SITES_URL);

export function getSiteDomain(site: Site) {
return `${site.name}.${sitesUrl.host}`;
}
3 changes: 2 additions & 1 deletion src/entities/sites/get-site-url.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { getSiteDomain } from './get-site-domain';
import { Site } from './site';
import { env } from '../../env/env';
import { URL } from 'url';

const sitesUrl = new URL(env.MELI_SITES_URL);

export function getSiteUrl(site: Site) {
return `${sitesUrl.protocol}//${site.name}.${sitesUrl.host}`;
return `${sitesUrl.protocol}//${getSiteDomain(site)}`;
}

0 comments on commit 719fef8

Please sign in to comment.