in src/js/helpers/apache.js [4:91]
export default (form, output) => {
var conf =
'# '+output.header+'\n'+
'# '+output.link+'\n'+
'\n'+
'# this configuration requires mod_ssl'+
(form.hsts ? ', mod_rewrite,'+(!form.ocsp ? ' and' : '')+' mod_headers' : '')+
(form.ocsp ? (form.hsts ? ',' : '')+' and mod_socache_shmcb' : '')+
'\n';
if (form.hsts) {
conf +=
'<VirtualHost *:80>\n'+
' RewriteEngine On\n'+
' RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/\n'+
' RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R='+output.hstsRedirectCode+',QSA,L]\n'+
'</VirtualHost>\n'+
'\n';
}
conf +=
'<VirtualHost *:443>\n'+
' SSLEngine on\n';
if (minver("2.4.7",form.serverVersion)) {
if (output.usesDhe) {
conf +=
'\n'+
' # '+output.dhCommand+' >> /path/to/signed_cert_and_intermediate_certs_and_dhparams\n'+
' SSLCertificateFile /path/to/signed_cert_and_intermediate_certs_and_dhparams\n';
}
else {
conf +=
' SSLCertificateFile /path/to/signed_cert_and_intermediate_certs\n';
}
}
else {
conf +=
' SSLCertificateFile /path/to/signed_certificate\n'+
' SSLCertificateChainFile /path/to/intermediate_certificate\n';
}
conf +=
' SSLCertificateKeyFile /path/to/private_key\n';
if (minver("2.4.17",form.serverVersion)) {
conf +=
'\n'+
' # enable HTTP/2, if available\n'+
' Protocols h2 http/1.1\n';
}
if (form.hsts) {
conf +=
'\n'+
' # HTTP Strict Transport Security (mod_headers is required) ('+output.hstsMaxAge+' seconds)\n'+
' Header'+(minver("2.0.0", form.serverVersion) ? ' always' : '')+' set Strict-Transport-Security "max-age='+output.hstsMaxAge+'"\n';
}
conf +=
'</VirtualHost>\n'+
'\n'+
'# '+form.config+' configuration\n'+
'SSLProtocol -all +'+output.protocols.join(' +')+'\n'+
(minver("2.4.11", form.serverVersion)
?
'SSLOpenSSLConfCmd Curves '+output.tlsCurves.join(':')+'\n'
: '')+
(output.ciphers.length
?
'SSLCipherSuite '+output.ciphers.join(':')+'\n'
: '')+
'SSLHonorCipherOrder '+(output.serverPreferredOrder ? 'on' : 'off')+'\n'+
(minpatchver("2.2.30", form.serverVersion) ||
(minver("2.4.11", form.serverVersion) && minver("1.0.2", form.opensslVersion))
?
'SSLSessionTickets off\n'
: '');
if (form.ocsp) {
conf +=
'\n'+
'SSLUseStapling On\n'+
'SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"\n';
}
return conf;
};