# 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 -SSLv3 -TLSv1 -TLSv1.1
+SSLProtocol -all +TLSv1.2 +TLSv1.3
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
-# 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
+# TLS 1.2 - only 256-bit AEAD ciphers with forward-secret ECDHE/DHE key exchange.
+# TLS 1.3 - only 256-bit AES-GCM and ChaCha20-Poly1305.
+# 128-bit AES is not allowed.
+#SSLCipherSuite ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20:!AES128
+#SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
-# 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
+# TLS 1.2 - only AEAD ciphers with forward-secret ECDHE/DHE key exchange.
+# TLS 1.3 - 256-bit ciphers plus AES-128-GCM for maximum compatibility.
+SSLCipherSuite ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20
+SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
SSLHonorCipherOrder on
SSLCompression off
# When finished, uncomment line below
#SSLOpenSSLConfCmd DHParameters /etc/httpd/ssl/dhparams.pem
-SSLOpenSSLConfCmd ECDHParameters secp384r1
-SSLOpenSSLConfCmd Curves secp521r1:secp384r1
+# TLS 1.3/1.2 key exchange groups.
+# Prefer hybrid post-quantum X25519 + ML-KEM-768.
+# Fall back to X25519 and P-256 for compatibility.
+SSLOpenSSLConfCmd Groups X25519MLKEM768:X25519:P-256
Header always set Strict-Transport-Security max-age=31556952;includeSubDomains
Header always set X-Frame-Options SAMEORIGIN