X-Git-Url: https://git.tld-linux.org/?p=packages%2Fapache.git;a=blobdiff_plain;f=apache-mod_ssl.conf;h=cf09e1dd3c98b442bb088b152084d998121041a7;hp=4da2c7da308745a4b384653f3e040ffb0f215cb5;hb=f13f85964fc303b8f372ee81cd9e141a25f0b8ad;hpb=45dd0a09984de9c699f66d58cb994b63b5188790 diff --git a/apache-mod_ssl.conf b/apache-mod_ssl.conf index 4da2c7d..cf09e1d 100644 --- a/apache-mod_ssl.conf +++ b/apache-mod_ssl.conf @@ -58,17 +58,62 @@ SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/httpd/ssl_scache(512000) SSLSessionCacheTimeout 300 +# FOLLOW SECURE DEFAULTS: https://wiki.mozilla.org/Security/Server_Side_TLS + # Usable SSL protocol flavors: # This directive can be used to control the SSL protocol flavors mod_ssl # should use when establishing its server environment. Clients then can only # connect with one of the provided protocols. -SSLProtocol all -SSLv2 +SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 # SSL Cipher Suite: # List the ciphers that the client is permitted to negotiate. # See the mod_ssl documentation for a complete list. -SSLCipherSuite ALL:!ADH:!EXP:!LOW:!SSLv2:RC4+RSA:+HIGH:+MEDIUM +# High security: no weak ciphers, at least 256 bit +# (except TLS_AES_128_GCM_SHA256 which is required by TLSv1.3) +#SSLCipherSuite HIGH:!aNULL:!AES128:!ARIA128:!CAMELLIA128:!RSA:!SHA:!SHA256:!SHA384 + +# If you don't care about TLSv1.3 requirements and don't want any 128 bit +# cipher you can disable TLS_AES_128_GCM_SHA256 by uncommenting line below +#SSLCipherSuite TLSv1.3 TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384 + +# Strong security: no weak ciphers, at least 128 bit +# Recommended setting if you are not paranoid +SSLCipherSuite HIGH:!aNULL:!RSA:!SHA:!SHA256:!SHA384 + +# Medium security: includes some weak ciphers, at least 256 bit +# (except TLS_AES_128_GCM_SHA256 which is required by TLSv1.3) +#SSLCipherSuite HIGH:!aNULL:!AES128:!ARIA128:!CAMELLIA128:!RSA + +# Low security: includes some weak ciphers, at least 128 bit +#SSLCipherSuite HIGH:!aNULL:!RSA + +SSLHonorCipherOrder on +SSLCompression off +SSLSessionTickets off + +# Use this command to generate 4096 DH parameters (it will take long time): +# openssl dhparam -out /etc/httpd/ssl/dhparams.pem 4096 +# When finished, uncomment line below +#SSLOpenSSLConfCmd DHParameters /etc/httpd/ssl/dhparams.pem + +SSLOpenSSLConfCmd ECDHParameters secp384r1 +SSLOpenSSLConfCmd Curves secp521r1:secp384r1 + +Header always set Strict-Transport-Security max-age=31556952;includeSubDomains +Header always set X-Frame-Options SAMEORIGIN +Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure +Header always set X-Content-Type-Options nosnif + +# OCSP Stapling +SSLUseStapling on +SSLStaplingResponderTimeout 5 +SSLStaplingReturnResponderErrors off +SSLStaplingCache shmcb:/var/cache/httpd/ocsp(128000) + +# Whether to allow non-SNI clients to access a name-based virtual host. +#SSLStrictSNIVHostCheck on ## ## SSL Virtual Host Context @@ -79,6 +124,10 @@ SSLCipherSuite ALL:!ADH:!EXP:!LOW:!SSLv2:RC4+RSA:+HIGH:+MEDIUM # Enable/Disable SSL for this virtual host. SSLEngine on +# Enable, if you have real ssl cert and want to cache OCSP +# https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx +SSLUseStapling off + # Server Certificate: # Point SSLCertificateFile at a PEM encoded certificate. If # the certificate is encrypted, then you will be prompted for a @@ -209,7 +258,8 @@ SSLCertificateKeyFile /etc/httpd/ssl/server.key # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and # "force-response-1.0" for this. - BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 + BrowserMatch ".*MSIE [2-5]\..*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 + BrowserMatch ".*MSIE [6-9]\..*" ssl-unclean-shutdown # Per-Server Logging: