diff --git a/roles/limesurvey/templates/limesurvey.conf.j2 b/roles/limesurvey/templates/limesurvey.conf.j2
index 0eed6c03b3e7a9b0ea4532033312886e85aafbdd..a3a305b5db12921eadb5bece17bde6cacb10790d 100644
--- a/roles/limesurvey/templates/limesurvey.conf.j2
+++ b/roles/limesurvey/templates/limesurvey.conf.j2
@@ -3,10 +3,24 @@ upstream php {
 }
 
 server {
-  listen   80;
+  listen 80; listen [::]:80;
+  server_name {{ limesurvey_server_name }};
+
+  return 301 https://$host$request_uri;
+}
+
+server {
+  listen 443 ssl http2;
+  server_name {{ limesurvey_server_name }};
+
+  ssl_certificate /etc/letsencrypt/live/{{ limesurvey_server_name }}/fullchain.pem;
+  ssl_certificate_key /etc/letsencrypt/live/{{ limesurvey_server_name }}/privkey.pem;
+  include /etc/letsencrypt/options-ssl-nginx.conf;
+
+  gzip on;
+
   root {{ limesurvey_dir }};
   index index.php index.html index.htm;
-  server_name {{ limesurvey_server_name }};
 
   location / {
     try_files $uri $uri/ =404;