aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/web-servers/nginx/default.nix')
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/default.nix20
1 files changed, 14 insertions, 6 deletions
diff --git a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index c8602e5975b..28b433104a1 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -87,10 +87,17 @@ let
${optionalString (cfg.sslDhparam != null) "ssl_dhparam ${cfg.sslDhparam};"}
${optionalString (cfg.recommendedTlsSettings) ''
- ssl_session_cache shared:SSL:42m;
- ssl_session_timeout 23m;
- ssl_ecdh_curve secp384r1;
- ssl_prefer_server_ciphers on;
+ # Keep in sync with https://ssl-config.mozilla.org/#server=nginx&config=intermediate
+
+ ssl_session_timeout 1d;
+ ssl_session_cache shared:SSL:10m;
+ # Breaks forward secrecy: https://github.com/mozilla/server-side-tls/issues/135
+ ssl_session_tickets off;
+ # We don't enable insecure ciphers by default, so this allows
+ # clients to pick the most performant, per https://github.com/mozilla/server-side-tls/issues/260
+ ssl_prefer_server_ciphers off;
+
+ # OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
''}
@@ -487,8 +494,9 @@ in
sslCiphers = mkOption {
type = types.str;
- default = "EECDH+aRSA+AESGCM:EDH+aRSA:EECDH+aRSA:+AES256:+AES128:+SHA1:!CAMELLIA:!SEED:!3DES:!DES:!RC4:!eNULL";
- description = "Ciphers to choose from when negotiating tls handshakes.";
+ # Keep in sync with https://ssl-config.mozilla.org/#server=nginx&config=intermediate
+ default = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
+ description = "Ciphers to choose from when negotiating TLS handshakes.";
};
sslProtocols = mkOption {