Skip to content

Commit e55a037

Browse files
authored
Add Let's Encrypt for certificates for prod proxy (#84)
1 parent b5d09c7 commit e55a037

3 files changed

Lines changed: 27 additions & 40 deletions

File tree

group_vars/artemis_production.yml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,16 @@ weaviate:
4040

4141
proxy_generate_dh_param: false
4242

43-
# Special TUM certificate config
44-
proxy_certificate_base_path: /opt/certs
45-
proxy_tum_certificate_key_name: artemis_tum_de-key.pem
46-
proxy_tum_certificate_name: artemis_tum_de.pem
47-
4843
servers:
4944
- name: "artemis.tum.de"
50-
ssl_certificate_path: "{{ proxy_certificate_base_path }}/{{ proxy_tum_certificate_name }}"
51-
ssl_certificate_key_path: "{{ proxy_certificate_base_path }}/{{ proxy_tum_certificate_key_name }}"
45+
ssl_certificate_path: /etc/letsencrypt/live/artemis.tum.de/fullchain.pem
46+
ssl_certificate_key_path: /etc/letsencrypt/live/artemis.tum.de/privkey.pem
5247
default_server: true
5348

5449
redirects:
55-
- name: "artemis.ase.in.tum.de artemis.in.tum.de artemis.ase.cit.tum.de proxy.prod.artemis.cit.tum.de artemis.cs.tum.edu proxy-internal.prod.artemis.cit.tum.de prod.artemis.cit.tum.de asevm91.cit.tum.de artemis.cit.tum.de"
56-
ssl_certificate_path: /var/lib/rbg-cert/live/host:f:asevm91.cit.tum.de.fullchain.pem
57-
ssl_certificate_key_path: /var/lib/rbg-cert/live/host:f:asevm91.cit.tum.de.privkey.pem
50+
- name: "artemis.ase.in.tum.de artemis.in.tum.de artemis.ase.cit.tum.de proxy.prod.artemis.cit.tum.de artemis.cs.tum.edu prod.artemis.cit.tum.de artemis.cit.tum.de"
51+
ssl_certificate_path: /etc/letsencrypt/live/artemis.tum.de/fullchain.pem
52+
ssl_certificate_key_path: /etc/letsencrypt/live/artemis.tum.de/privkey.pem
5853
default_server: false
5954
to: "{{ artemis_server_url }}"
6055

playbooks/artemis-production/production-proxy.yml

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,30 @@
22
- name: Setup Artemis Load Balancer / Reverse Proxy
33
hosts: artemis_production_proxy
44
pre_tasks:
5-
- name: Create certificate dir on proxy
6-
ansible.builtin.file:
7-
dest: "{{ proxy_certificate_base_path }}"
8-
state: directory
9-
mode: "0700"
10-
owner: "root"
11-
group: "root"
5+
- name: Install certbot nginx plugin
6+
ansible.builtin.package:
7+
name: python3-certbot-nginx
8+
state: present
9+
tags: certbot
1210
become: true
1311

14-
- name: Copy certificates to proxy
15-
ansible.builtin.copy:
16-
src: "{{ item }}"
17-
dest: "{{ proxy_certificate_base_path }}/{{ proxy_tum_certificate_name }}"
18-
mode: "0755"
19-
owner: "root"
20-
group: "root"
21-
with_fileglob:
22-
- "artemis_tum_de-certificates/artemis_tum_de.pem"
23-
become: true
24-
25-
- name: Get the tum certificate key from vault
26-
ansible.builtin.set_fact:
27-
artemis_tum_cert_key: "{{ lookup('hashi_vault', 'kv/data/artemis/production/proxy').get('artemis_tum_de-key') }}"
28-
29-
- name: Write tum certificate key to file
30-
ansible.builtin.copy:
31-
content: "{{ artemis_tum_cert_key }}"
32-
dest: "{{ proxy_certificate_base_path }}/{{ proxy_tum_certificate_key_name }}"
33-
mode: "0755"
34-
owner: "root"
35-
group: "root"
12+
roles:
13+
- role: geerlingguy.certbot
3614
become: true
15+
tags: certbot
16+
vars:
17+
certbot_auto_renew: true
18+
certbot_auto_renew_hour: "3"
19+
certbot_auto_renew_minute: "30"
20+
certbot_auto_renew_user: root
21+
certbot_auto_renew_options: "--quiet"
22+
certbot_create_if_missing: true
23+
certbot_admin_email: "{{ artemis_email }}"
24+
certbot_certs:
25+
- domains: "{{ (servers | map(attribute='name') | map('split', ' ') | flatten | list) + (redirects | map(attribute='name') | map('split', ' ') | flatten | list) }}"
26+
certbot_create_standalone_stop_services:
27+
certbot_create_command: "{{ certbot_script }} certonly --nginx --noninteractive --agree-tos --email {{ cert_item.email | default(certbot_admin_email) }} -d {{ cert_item.domains | join(',') }}"
3728

38-
roles:
3929
- role: ls1intum.artemis.firewall
4030
tags: firewall
4131
vars:

requirements.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
roles:
33
- src: geerlingguy.docker
44

5+
- src: geerlingguy.certbot
6+
57
- src: geerlingguy.mysql
68
version: 6.2.0
79

0 commit comments

Comments
 (0)