nixos/nginx: use Mozilla Intermediate TLS configuration
The configuration at https://ssl-config.mozilla.org/#server=nginx&config=intermediate is reliably kept up-to-date in terms of security and compatible with a wide range of clients. They've probably had more care and thought put into them than our defaults, and will be easier to keep updated in the future. The only removed (rather than changed) configuration option here is ssl_ecdh_curve, per https://github.com/mozilla/server-side-tls/issues/189. Resolves #80952.
This commit is contained in:
parent
82b54d4906
commit
4ed98d69ed
@ -87,10 +87,17 @@ let
|
|||||||
${optionalString (cfg.sslDhparam != null) "ssl_dhparam ${cfg.sslDhparam};"}
|
${optionalString (cfg.sslDhparam != null) "ssl_dhparam ${cfg.sslDhparam};"}
|
||||||
|
|
||||||
${optionalString (cfg.recommendedTlsSettings) ''
|
${optionalString (cfg.recommendedTlsSettings) ''
|
||||||
ssl_session_cache shared:SSL:42m;
|
# Keep in sync with https://ssl-config.mozilla.org/#server=nginx&config=intermediate
|
||||||
ssl_session_timeout 23m;
|
|
||||||
ssl_ecdh_curve secp384r1;
|
ssl_session_timeout 1d;
|
||||||
ssl_prefer_server_ciphers on;
|
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 on;
|
||||||
ssl_stapling_verify on;
|
ssl_stapling_verify on;
|
||||||
''}
|
''}
|
||||||
@ -487,8 +494,9 @@ in
|
|||||||
|
|
||||||
sslCiphers = mkOption {
|
sslCiphers = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "EECDH+aRSA+AESGCM:EDH+aRSA:EECDH+aRSA:+AES256:+AES128:+SHA1:!CAMELLIA:!SEED:!3DES:!DES:!RC4:!eNULL";
|
# Keep in sync with https://ssl-config.mozilla.org/#server=nginx&config=intermediate
|
||||||
description = "Ciphers to choose from when negotiating tls handshakes.";
|
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 {
|
sslProtocols = mkOption {
|
||||||
|
Loading…
Reference in New Issue
Block a user