Unverified Commit eda2f139 by Nadeem Shahzad Committed by GitHub

Merge pull request #4206 from edx/nadeem/OPS-2412

Enable HTTP Strict Transport Security even behind the ELB
parents 35778117 1d7dbee1
- Role: nginx
- Modified `lms.j2` , `cms.j2` , `credentials.j2` , `edx_notes_api.j2` and `insights.j2` to enable HTTP Strict Transport Security
- Added `NGINX_HSTS_MAX_AGE` to make HSTS header `max_age` value configurable and used in templates
- Role: server_utils - Role: server_utils
- Install "vim", not "vim-tiny". - Install "vim", not "vim-tiny".
......
...@@ -18,6 +18,7 @@ NGINX_USERS: ...@@ -18,6 +18,7 @@ NGINX_USERS:
NGINX_ENABLE_SSL: False NGINX_ENABLE_SSL: False
NGINX_REDIRECT_TO_HTTPS: False NGINX_REDIRECT_TO_HTTPS: False
NGINX_HSTS_MAX_AGE: 31536000
# Set these to real paths on your # Set these to real paths on your
# filesystem, otherwise nginx will # filesystem, otherwise nginx will
# use a self-signed snake-oil cert # use a self-signed snake-oil cert
......
...@@ -38,8 +38,11 @@ error_page {{ k }} {{ v }}; ...@@ -38,8 +38,11 @@ error_page {{ k }} {{ v }};
ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }}; ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }};
ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }}; ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }};
{% endif %}
{% if NGINX_ENABLE_SSL or NGINX_REDIRECT_TO_HTTPS %}
# request the browser to use SSL for all connections # request the browser to use SSL for all connections
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; add_header Strict-Transport-Security "max-age={{ NGINX_HSTS_MAX_AGE }}";
{% endif %} {% endif %}
# Prevent invalid display courseware in IE 10+ with high privacy settings # Prevent invalid display courseware in IE 10+ with high privacy settings
......
...@@ -27,12 +27,15 @@ server { ...@@ -27,12 +27,15 @@ server {
ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }}; ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }};
ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }}; ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }};
# request the browser to use SSL for all connections
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
{% else %} {% else %}
listen {{ CREDENTIALS_NGINX_PORT }} {{ default_site }}; listen {{ CREDENTIALS_NGINX_PORT }} {{ default_site }};
{% endif %} {% endif %}
{% if NGINX_ENABLE_SSL or NGINX_REDIRECT_TO_HTTPS %}
# request the browser to use SSL for all connections
add_header Strict-Transport-Security "max-age={{ NGINX_HSTS_MAX_AGE }}";
{% endif %}
# Prevent invalid display courseware in IE 10+ with high privacy settings # Prevent invalid display courseware in IE 10+ with high privacy settings
add_header P3P '{{ NGINX_P3P_MESSAGE }}'; add_header P3P '{{ NGINX_P3P_MESSAGE }}';
......
...@@ -13,8 +13,11 @@ server { ...@@ -13,8 +13,11 @@ server {
ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }}; ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }};
ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }}; ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }};
{% endif %}
{% if NGINX_ENABLE_SSL or NGINX_REDIRECT_TO_HTTPS %}
# request the browser to use SSL for all connections # request the browser to use SSL for all connections
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; add_header Strict-Transport-Security "max-age={{ NGINX_HSTS_MAX_AGE }}";
{% endif %} {% endif %}
{% include "common-settings.j2" %} {% include "common-settings.j2" %}
......
...@@ -27,8 +27,11 @@ server { ...@@ -27,8 +27,11 @@ server {
ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }}; ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }};
ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }}; ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }};
{% endif %}
{% if NGINX_ENABLE_SSL or NGINX_REDIRECT_TO_HTTPS %}
# request the browser to use SSL for all connections # request the browser to use SSL for all connections
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; add_header Strict-Transport-Security "max-age={{ NGINX_HSTS_MAX_AGE }}";
{% endif %} {% endif %}
location ~ ^/static/(?P<file>.*) { location ~ ^/static/(?P<file>.*) {
......
...@@ -86,8 +86,11 @@ error_page {{ k }} {{ v }}; ...@@ -86,8 +86,11 @@ error_page {{ k }} {{ v }};
ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }}; ssl_certificate /etc/ssl/certs/{{ NGINX_SSL_CERTIFICATE|basename }};
ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }}; ssl_certificate_key /etc/ssl/private/{{ NGINX_SSL_KEY|basename }};
{% endif %}
{% if NGINX_ENABLE_SSL or NGINX_REDIRECT_TO_HTTPS %}
# request the browser to use SSL for all connections # request the browser to use SSL for all connections
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; add_header Strict-Transport-Security "max-age={{ NGINX_HSTS_MAX_AGE }}";
{% endif %} {% endif %}
# Prevent invalid display courseware in IE 10+ with high privacy settings # Prevent invalid display courseware in IE 10+ with high privacy settings
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment