Skip to content

Commit dbefef9

Browse files
committed
Reorganize how default nginx ssl config settings are applied.
- Shift the defaults into the `config/default.yml`. Using this approach, the template no longer needs conditionals, since the values in `config/default.yml` will be inherited if the admin doesn't override them in the `/etc/api-umbrella/api-umbrella.yml` file. - Make a few last ssl settings configurable via settings (these others seem less likely to be changed, but we'll make them configurable in any case).
1 parent 7298b91 commit dbefef9

File tree

2 files changed

+14
-29
lines changed

2 files changed

+14
-29
lines changed

config/default.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ nginx:
1919
proxy_read_timeout: 60
2020
proxy_send_timeout: 60
2121
keepalive_timeout: 75
22+
ssl_protocols: "TLSv1 TLSv1.1 TLSv1.2"
23+
ssl_ciphers: "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"
24+
ssl_session_cache: "shared:ssl_sessions:50m"
25+
ssl_session_timeout: 24h
26+
ssl_session_tickets: "off"
27+
ssl_buffer_size: 1400
28+
ssl_prefer_server_ciphers: "on"
29+
ssl_ecdh_curve: secp384r1
2230
dyups:
2331
host: 127.0.0.1
2432
port: 14005

templates/etc/nginx/router.conf.mustache

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -115,37 +115,14 @@ http {
115115
gzip_types application/atom+xml application/javascript application/json application/rss+xml application/x-javascript application/xml text/css text/csv text/javascript text/plain text/xml;
116116
gzip_vary on;
117117

118-
{{#nginx.ssl_protocols}}
119118
ssl_protocols {{nginx.ssl_protocols}};
120-
{{/nginx.ssl_protocols}}
121-
{{^nginx.ssl_protocols}}
122-
# Disable SSLv3(enabled by default since nginx 0.8.19) since it's less secure then TLS http://en.wikipedia.org/wiki/Secure_Sockets_Layer#SSL_3.0
123-
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
124-
{{/ssl_protocols}}
125-
126-
{{#nginx.ssl_ciphers}}
127119
ssl_ciphers {{nginx.ssl_ciphers}};
128-
{{/nginx.ssl_ciphers}}
129-
{{^nginx.ssl_ciphers}}
130-
# Ciphers chosen for forward secrecy and compatibility
131-
# https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29
132-
ssl_ciphers 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;
133-
{{/nginx.ssl_ciphers}}
134-
135-
# Enable session resumption to improve https performance
136-
{{#nginx.ssl_session_cache}}
137120
ssl_session_cache {{nginx.ssl_session_cache}};
138-
{{/nginx.ssl_session_cache}}
139-
{{^nginx.ssl_session_cache}}
140-
ssl_session_cache shared:SSL:50m;
141-
{{/nginx.ssl_session_cache}}
142-
ssl_session_timeout 24h;
143-
ssl_session_tickets off;
144-
ssl_buffer_size 1400;
145-
146-
# Enable server-side protection from BEAST attacks
147-
ssl_prefer_server_ciphers on;
148-
ssl_ecdh_curve secp384r1;
121+
ssl_session_timeout {{nginx.ssl_session_timeout}};
122+
ssl_session_tickets {{nginx.ssl_session_tickets}};
123+
ssl_buffer_size {{nginx.ssl_buffer_size}};
124+
ssl_prefer_server_ciphers {{nginx.ssl_prefer_server_ciphers}};
125+
ssl_ecdh_curve {{nginx.ssl_ecdh_curve}};
149126

150127
{{#nginx.dhparam}}
151128
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
@@ -302,4 +279,4 @@ http {
302279
{{#_test_env?}}
303280
include ./test_backends.conf;
304281
{{/_test_env?}}
305-
}
282+
}

0 commit comments

Comments
 (0)