From 481a2218ab45f43b4a8f89619a3da3e72f8ca8a0 Mon Sep 17 00:00:00 2001 From: Robin Sonnabend <robin@fsmpi.rwth-aachen.de> Date: Tue, 18 Dec 2018 09:32:58 +0100 Subject: [PATCH] Simplify usage of acmetool with nginx --- acmetool/defaults/main.yml | 2 +- acmetool/tasks/main.yml | 4 +--- acmetool/templates/reload-config.j2 | 6 +----- webserver/templates/sites/hostnamerewrite.conf | 6 ++---- webserver/templates/sites/iprewrite.conf | 4 +--- webserver/templates/sites/mediawiki.conf | 2 +- webserver/templates/sites/tlsproxy.conf | 6 ++---- webserver/templates/sites/webapp.conf | 2 +- webserver/templates/ssl-certificate | 3 +++ 9 files changed, 13 insertions(+), 22 deletions(-) create mode 100644 webserver/templates/ssl-certificate diff --git a/acmetool/defaults/main.yml b/acmetool/defaults/main.yml index dc1fb52..30bd4da 100644 --- a/acmetool/defaults/main.yml +++ b/acmetool/defaults/main.yml @@ -6,4 +6,4 @@ acmetool_key_type: rsa acmetool_rsa_key_size: 4096 acmetool_mail: "{{ adminaddr }}" -acmetool_enable_proxy: true +acmetool_services: ["nginx-proxy"] diff --git a/acmetool/tasks/main.yml b/acmetool/tasks/main.yml index bda2e5d..441729b 100644 --- a/acmetool/tasks/main.yml +++ b/acmetool/tasks/main.yml @@ -29,7 +29,7 @@ - name: initially configure acmetool # yamllint disable-line rule:line-length command: acmetool quickstart --expert --batch --response-file /var/lib/acme/quickstart-reponses.yml - when: not acmetool_status.stdout|search(acmetool_endpoint) + when: not acmetool_status.stdout is search(acmetool_endpoint) tags: - acmetool - config @@ -54,7 +54,6 @@ mode: '0755' notify: - reload systemd service files - when: acmetool_enable_proxy tags: - acmetool - services @@ -68,7 +67,6 @@ mode: '0644' notify: - reload systemd service files - when: acmetool_enable_proxy tags: - acmetool - services diff --git a/acmetool/templates/reload-config.j2 b/acmetool/templates/reload-config.j2 index 2dbb69e..3271bdf 100644 --- a/acmetool/templates/reload-config.j2 +++ b/acmetool/templates/reload-config.j2 @@ -1,5 +1 @@ -{% if acmetool_enable_proxy %} -SERVICES="nginx-proxy" -{% else %} -SERVICES="nginx" -{% endif %} +SERVICES="{{acmetool_services|join(" ")}}" diff --git a/webserver/templates/sites/hostnamerewrite.conf b/webserver/templates/sites/hostnamerewrite.conf index a095c04..f9863fc 100644 --- a/webserver/templates/sites/hostnamerewrite.conf +++ b/webserver/templates/sites/hostnamerewrite.conf @@ -3,11 +3,9 @@ server { listen 443 ssl; server_name {{server.forward_hostnames.hostnames|default(server.forward_hostnames)|join(" ")}}; - ssl_certificate {{server.certificate}}; - ssl_trusted_certificate {{server.certificate}}; - ssl_certificate_key {{server.private_key}}; + {% include "ssl-certificate" %} -{% if server.include_acme is defined and server.include_acme %} +{% if server.include_acme|default(true) %} include /etc/nginx/snippets/acmetool.conf; location / { diff --git a/webserver/templates/sites/iprewrite.conf b/webserver/templates/sites/iprewrite.conf index d6ec14f..e94b3c6 100644 --- a/webserver/templates/sites/iprewrite.conf +++ b/webserver/templates/sites/iprewrite.conf @@ -3,9 +3,7 @@ server { listen 443 ssl; server_name {{ansible_all_ipv4_addresses|join(" ")}}; - ssl_certificate {{server.certificate}}; - ssl_trusted_certificate {{server.certificate}}; - ssl_certificate_key {{server.private_key}}; + {% include "ssl-certificate" %} return 301 https://{{server.server_name}}$request_uri; } diff --git a/webserver/templates/sites/mediawiki.conf b/webserver/templates/sites/mediawiki.conf index 8e21742..3aff898 100644 --- a/webserver/templates/sites/mediawiki.conf +++ b/webserver/templates/sites/mediawiki.conf @@ -13,7 +13,7 @@ server { index {{server.indices|join(" ")}}; {% endif %} - {% if server.include_acme is defined and server.include_acme %} + {% if server.include_acme|default(true) %} include /etc/nginx/snippets/acmetool.conf; {% endif -%} diff --git a/webserver/templates/sites/tlsproxy.conf b/webserver/templates/sites/tlsproxy.conf index 25e2c1b..9652553 100644 --- a/webserver/templates/sites/tlsproxy.conf +++ b/webserver/templates/sites/tlsproxy.conf @@ -2,7 +2,7 @@ server { listen {% if server.no_ssl is undefined or not server.no_ssl %}443 ssl{% else %}80{% endif %}; server_name {{server.server_names|default([server.server_name])|join(" ")}}; - {% if server.include_acme is defined and server.include_acme %} + {% if server.include_acme|default(true) %} include /etc/nginx/snippets/acmetool.conf; {% endif -%} @@ -11,9 +11,7 @@ server { {% endif %} {% if server.no_ssl is undefined or not server.no_ssl %} - ssl_certificate {{server.certificate}}; - ssl_trusted_certificate {{server.certificate}}; - ssl_certificate_key {{server.private_key}}; + {% include "ssl-certificate" %} {% endif %} {% if server.cipher_strength is defined -%} ssl_ciphers '{{ciphers[server.cipher_strength]}}'; diff --git a/webserver/templates/sites/webapp.conf b/webserver/templates/sites/webapp.conf index 3e8e13e..cb916f5 100644 --- a/webserver/templates/sites/webapp.conf +++ b/webserver/templates/sites/webapp.conf @@ -17,7 +17,7 @@ server { {% endfor %} {% endif %} - {% if server.include_acme is defined and server.include_acme %} + {% if server.include_acme|default(true) %} include /etc/nginx/snippets/acmetool.conf; {% endif -%} diff --git a/webserver/templates/ssl-certificate b/webserver/templates/ssl-certificate new file mode 100644 index 0000000..4b81ce5 --- /dev/null +++ b/webserver/templates/ssl-certificate @@ -0,0 +1,3 @@ + ssl_certificate {{server.certificate|default("/var/lib/acme/live/" + server.server_name + "/fullchain")}}; + ssl_trusted_certificate {{server.certificate|default("/var/lib/acme/live/" + server.server_name + "/fullchain")}}; + ssl_certificate_key {{server.private_key|default("/var/lib/acme/live/" + server.server_name + "/privkey")}}; -- GitLab