From 8614708627eb7d19599812a4e92400225fe36c7b Mon Sep 17 00:00:00 2001 From: Florian Pritz <bluewind@xinu.at> Date: Fri, 20 Oct 2017 21:26:55 +0200 Subject: [PATCH] Create SSL certificates automatically for nginx configs Signed-off-by: Florian Pritz <bluewind@xinu.at> --- roles/dbscripts/tasks/main.yml | 6 ++---- roles/dbscripts/templates/nginx.d.conf.j2 | 2 -- roles/matrix/tasks/main.yml | 4 ++-- roles/matrix/templates/nginx.d.conf.j2 | 2 -- roles/public_html/tasks/main.yml | 4 ++-- roles/public_html/templates/nginx.d.conf.j2 | 2 -- roles/syncrepo/tasks/main.yml | 4 ++-- roles/syncrepo/templates/nginx.d.conf.j2 | 2 -- 8 files changed, 8 insertions(+), 18 deletions(-) diff --git a/roles/dbscripts/tasks/main.yml b/roles/dbscripts/tasks/main.yml index 5b5869117..e8710a516 100644 --- a/roles/dbscripts/tasks/main.yml +++ b/roles/dbscripts/tasks/main.yml @@ -18,10 +18,8 @@ - name: set up sudoers.d for special users copy: src=sudoers.d dest=/etc/sudoers.d/dbscripts owner=root group=root mode=0600 -- stat: path="/etc/letsencrypt/live/{{ repos_domain }}/fullchain.pem" - register: certfile - tags: - - nginx +- name: create ssl cert + command: certbot certonly --email webmaster@archlinux.org --agree-tos --rsa-key-size 4096 --renew-by-default --webroot -w {{letsencrypt_validation_dir}} -d '{{ repos_domain }}' create='/etc/letsencrypt/live/{{ repos_domain }}/fullchain.pem' - name: set up nginx template: src=nginx.d.conf.j2 dest=/etc/nginx/nginx.d/dbscripts.conf owner=root group=root mode=0644 diff --git a/roles/dbscripts/templates/nginx.d.conf.j2 b/roles/dbscripts/templates/nginx.d.conf.j2 index 4ab50863c..70e672003 100644 --- a/roles/dbscripts/templates/nginx.d.conf.j2 +++ b/roles/dbscripts/templates/nginx.d.conf.j2 @@ -51,11 +51,9 @@ server { server_name {{ repos_domain }} {{repos_rsync_domain}}; root /srv/ftp; -{% if certfile.stat.exists %} ssl_certificate /etc/letsencrypt/live/{{ repos_domain }}/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/{{ repos_domain }}/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/{{ repos_domain }}/chain.pem; -{% endif %} satisfy any; diff --git a/roles/matrix/tasks/main.yml b/roles/matrix/tasks/main.yml index ecbd53556..24b9f3439 100644 --- a/roles/matrix/tasks/main.yml +++ b/roles/matrix/tasks/main.yml @@ -1,7 +1,7 @@ --- -- stat: path="/etc/letsencrypt/live/{{ matrix_domain }}/fullchain.pem" - register: certfile +- name: create ssl cert + command: certbot certonly --email webmaster@archlinux.org --agree-tos --rsa-key-size 4096 --renew-by-default --webroot -w {{letsencrypt_validation_dir}} -d '{{ matrix_domain }}' create='/etc/letsencrypt/live/{{ matrix_domain }}/fullchain.pem' when: 'matrix_domain != ""' - name: install packages diff --git a/roles/matrix/templates/nginx.d.conf.j2 b/roles/matrix/templates/nginx.d.conf.j2 index 13236104b..271a9fb43 100644 --- a/roles/matrix/templates/nginx.d.conf.j2 +++ b/roles/matrix/templates/nginx.d.conf.j2 @@ -25,11 +25,9 @@ server { access_log /var/log/nginx/{{ matrix_domain }}/access.log; error_log /var/log/nginx/{{ matrix_domain }}/error.log; -{% if certfile.stat.exists %} ssl_certificate /etc/letsencrypt/live/{{ matrix_domain }}/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/{{ matrix_domain }}/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/{{ matrix_domain }}/chain.pem; -{% endif %} location /_matrix { proxy_pass http://matrix; diff --git a/roles/public_html/tasks/main.yml b/roles/public_html/tasks/main.yml index 1fd59b034..545fb610f 100644 --- a/roles/public_html/tasks/main.yml +++ b/roles/public_html/tasks/main.yml @@ -1,7 +1,7 @@ --- -- stat: path="/etc/letsencrypt/live/{{ public_domain }}/fullchain.pem" - register: certfile +- name: create ssl cert + command: certbot certonly --email webmaster@archlinux.org --agree-tos --rsa-key-size 4096 --renew-by-default --webroot -w {{letsencrypt_validation_dir}} -d '{{ public_domain }}' create='/etc/letsencrypt/live/{{ public_domain }}/fullchain.pem' - name: copy webroot files copy: src=public_html dest=/srv owner=root group=root mode=0644 directory_mode=0755 diff --git a/roles/public_html/templates/nginx.d.conf.j2 b/roles/public_html/templates/nginx.d.conf.j2 index 041901525..034af8e11 100644 --- a/roles/public_html/templates/nginx.d.conf.j2 +++ b/roles/public_html/templates/nginx.d.conf.j2 @@ -25,11 +25,9 @@ server { access_log /var/log/nginx/{{ public_domain }}/access.log; error_log /var/log/nginx/{{ public_domain }}/error.log; -{% if certfile.stat.exists %} ssl_certificate /etc/letsencrypt/live/{{ public_domain }}/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/{{ public_domain }}/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/{{ public_domain }}/chain.pem; -{% endif %} location ~ ^/~([A-Za-z0-9]+)(/.*)? { alias /home/$1/public_html$2; diff --git a/roles/syncrepo/tasks/main.yml b/roles/syncrepo/tasks/main.yml index 2c900ed49..c5505025f 100644 --- a/roles/syncrepo/tasks/main.yml +++ b/roles/syncrepo/tasks/main.yml @@ -1,7 +1,7 @@ --- -- stat: path="/etc/letsencrypt/live/{{ mirror_domain }}/fullchain.pem" - register: certfile +- name: create ssl cert + command: certbot certonly --email webmaster@archlinux.org --agree-tos --rsa-key-size 4096 --renew-by-default --webroot -w {{letsencrypt_validation_dir}} -d '{{ mirror_domain }}' create='/etc/letsencrypt/live/{{ mirror_domain }}/fullchain.pem' when: 'mirror_domain != ""' - name: install rsync diff --git a/roles/syncrepo/templates/nginx.d.conf.j2 b/roles/syncrepo/templates/nginx.d.conf.j2 index 58e4107b9..1e69ceb4d 100644 --- a/roles/syncrepo/templates/nginx.d.conf.j2 +++ b/roles/syncrepo/templates/nginx.d.conf.j2 @@ -21,11 +21,9 @@ server { access_log /var/log/nginx/{{ mirror_domain }}/access.log; error_log /var/log/nginx/{{ mirror_domain }}/error.log; -{% if certfile.stat.exists %} ssl_certificate /etc/letsencrypt/live/{{ mirror_domain }}/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/{{ mirror_domain }}/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/{{ mirror_domain }}/chain.pem; -{% endif %} autoindex on; } -- GitLab