acme_forward: send services' ACME challenges to Traefik on ops
All checks were successful
deploy / ansible (push) Successful in 6m25s
All checks were successful
deploy / ansible (push) Successful in 6m25s
The XMPP certificate covers xmpp.asxp.io and conference.asxp.io, which point at asxpio-services, so Let's Encrypt validates them there. A small nginx on port 80 passes /.well-known/acme-challenge/ over the VPC to Traefik, which holds all certificates, and answers 404 to the rest. Assisted-by: Claude:opus-5-5
This commit is contained in:
parent
700161ffd0
commit
4865efd078
5 changed files with 50 additions and 0 deletions
14
ansible/roles/acme_forward/tasks/main.yaml
Normal file
14
ansible/roles/acme_forward/tasks/main.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
# Port 80 on asxpio-services exists only for Let's Encrypt: HTTP challenges
|
||||
# for names pointing here (xmpp., conference.) go to Traefik on ops, which
|
||||
# holds the certificates. Anything else gets a 404.
|
||||
- name: Deploy the ACME challenge forwarder
|
||||
ansible.builtin.include_role:
|
||||
name: docker_service
|
||||
vars:
|
||||
service_name: acme-forward
|
||||
service_base_path: "{{ services_base_path }}/acme-forward"
|
||||
service_templates:
|
||||
- { src: docker-compose.yml.j2, dest: docker-compose.yml }
|
||||
- { src: nginx.conf.j2, dest: nginx.conf }
|
||||
health_check_port: 80
|
||||
11
ansible/roles/acme_forward/templates/docker-compose.yml.j2
Normal file
11
ansible/roles/acme_forward/templates/docker-compose.yml.j2
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# Managed by Ansible (role acme_forward).
|
||||
services:
|
||||
acme-forward:
|
||||
image: nginx:{{ acme_forward_nginx_version }}
|
||||
container_name: acme-forward
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
restart: unless-stopped
|
||||
mem_limit: 32m
|
||||
16
ansible/roles/acme_forward/templates/nginx.conf.j2
Normal file
16
ansible/roles/acme_forward/templates/nginx.conf.j2
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Managed by Ansible (role acme_forward).
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
server_tokens off;
|
||||
access_log off;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
proxy_pass http://{{ asxpio_ops_vpc_ip }};
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
location / {
|
||||
return 404;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue