+# lighttpd support for SSLv2 and SSLv3
+#
+# Documentation: https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL
+# https://www.ssllabs.com/projects/best-practices/index.html
+# https://cipherli.st/
+# https://wiki.mozilla.org/Security/Server_Side_TLS
+# https://mozilla.github.io/server-side-tls/ssl-config-generator/
+
+$SERVER["socket"] == ":443" {
+ protocol = "https://"
+ ssl.engine = "enable"
+ ssl.disable-client-renegotiation = "enable"
+
+ # ssl.pemfile: path to the PEM file for SSL support
+ # (Should contain both the private key and the certificate)
+ ## If you have a .crt and a .key file, cat them together into a single PEM file:
+ ## $ cat lighttpd.key lighttpd.crt > lighttpd.pem
+ ssl.pemfile = "/etc/lighttpd/ssl/server.pem"
+ # ssl.ca-file: path to the CA file for support of chained certificates
+# ssl.ca-file = "/etc/lighttpd/ssl/chain.pem"
+
+ # for DH/DHE ciphers, dhparam should be >= 2048-bit
+ # Generate with:
+ # openssl dhparam -out dh2048.pem -outform PEM -2 2048
+# ssl.dh-file = "/etc/lighttpd/ssl/dhparam.pem"
+ # ECDH/ECDHE ciphers curve strength (see `openssl ecparam -list_curves`)
+# ssl.ec-curve = "secp384r1"
+ # Compression is by default off at compile-time, but use if needed
+# ssl.use-compression = "disable"
+
+ # Environment flag for HTTPS enabled
+# setenv.add-environment = (
+# "HTTPS" => "on"
+# )
+
+ # intermediate configuration, tweak to your needs
+ ssl.use-sslv2 = "disable"
+ ssl.use-sslv3 = "disable"
+ ssl.honor-cipher-order = "enable"
+ # If you know you have RSA keys (standard), you can use:
+ #ssl.cipher-list = "aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK"
+ # The more generic version (without the restriction to RSA keys) is
+ #ssl.cipher-list = "HIGH !aNULL !3DES +kEDH +kRSA !kSRP !kPSK"
+ # List from https://mozilla.github.io/server-side-tls/ssl-config-generator/
+ ssl.cipher-list = "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"
+
+ # HSTS(15768000 seconds = 6 months)
+# setenv.add-response-header = (
+# "Strict-Transport-Security" => "max-age=15768000;"
+# )
+
+ $HTTP["useragent"] =~ "MSIE" {
+ server.max-keep-alive-requests = 0
+ }
+}