Provide an option for LE cert dir (fixes #156)

pull/159/head
MattIPv4 2020-06-21 15:52:07 +01:00
parent 0f4c53b5ac
commit 97ccb98ef8
4 changed files with 25 additions and 3 deletions

View File

@ -48,7 +48,7 @@ const sslConfig = (domain, global) => {
// Let's encrypt // Let's encrypt
if (domain.https.certType.computed === 'letsEncrypt') if (domain.https.certType.computed === 'letsEncrypt')
config.push(['ssl_trusted_certificate', config.push(['ssl_trusted_certificate',
`/etc/letsencrypt/live/${domain.server.domain.computed}/chain.pem`]); `${global.https.letsEncryptCertRoot.computed.replace(/\/+$/, '')}/${domain.server.domain.computed}/chain.pem`]);
} }
return config; return config;
}; };

View File

@ -40,6 +40,7 @@ export default {
quad9: 'Quad9', quad9: 'Quad9',
verisign: 'Verisign', verisign: 'Verisign',
letsEncryptWebroot: `${common.letsEncrypt} webroot`, letsEncryptWebroot: `${common.letsEncrypt} webroot`,
letsEncryptCertRoot: `${common.letsEncrypt} certificate directory`,
mozillaModern: `${mozilla} Modern`, mozillaModern: `${mozilla} Modern`,
mozillaIntermediate: `${mozilla} Intermediate`, mozillaIntermediate: `${mozilla} Intermediate`,
mozillaOld: `${mozilla} Old`, mozillaOld: `${mozilla} Old`,

View File

@ -194,6 +194,23 @@ THE SOFTWARE.
</div> </div>
</div> </div>
</div> </div>
<div v-if="letsEncryptCertRootEnabled" class="field is-horizontal">
<div class="field-label">
<label class="label">{{ i18n.templates.globalSections.https.letsEncryptCertRoot }}</label>
</div>
<div class="field-body">
<div class="field">
<div :class="`control${letsEncryptCertRootChanged ? ' is-changed' : ''}`">
<input v-model="letsEncryptCertRoot"
class="input"
type="text"
:placeholder="$props.data.letsEncryptCertRoot.default"
/>
</div>
</div>
</div>
</div>
</template> </template>
</div> </div>
</template> </template>
@ -261,6 +278,10 @@ THE SOFTWARE.
default: '/var/www/_letsencrypt/', default: '/var/www/_letsencrypt/',
enabled: true, enabled: true,
}, },
letsEncryptCertRoot: {
default: '/etc/letsencrypt/live/',
enabled: true,
},
}; };
export default { export default {

View File

@ -26,7 +26,7 @@ THE SOFTWARE.
export const getSslCertificate = (domain, global) => { export const getSslCertificate = (domain, global) => {
if (domain.https.certType.computed === 'letsEncrypt') if (domain.https.certType.computed === 'letsEncrypt')
`/etc/letsencrypt/live/${domain.server.domain.computed}/fullchain.pem`; return `${global.https.letsEncryptCertRoot.computed.replace(/\/+$/, '')}/${domain.server.domain.computed}/fullchain.pem`;
if (domain.https.sslCertificate.computed) if (domain.https.sslCertificate.computed)
return domain.https.sslCertificate.computed; return domain.https.sslCertificate.computed;
@ -36,7 +36,7 @@ export const getSslCertificate = (domain, global) => {
export const getSslCertificateKey = (domain, global) => { export const getSslCertificateKey = (domain, global) => {
if (domain.https.certType.computed === 'letsEncrypt') if (domain.https.certType.computed === 'letsEncrypt')
`/etc/letsencrypt/live/${domain.server.domain.computed}/privkey.pem`; return `${global.https.letsEncryptCertRoot.computed.replace(/\/+$/, '')}/${domain.server.domain.computed}/privkey.pem`;
if (domain.https.sslCertificateKey.computed) if (domain.https.sslCertificateKey.computed)
return domain.https.sslCertificateKey.computed; return domain.https.sslCertificateKey.computed;