diff --git a/roles/client_pki/tasks/main.yml b/roles/client_pki/tasks/main.yml index 160441f..03cb698 100644 --- a/roles/client_pki/tasks/main.yml +++ b/roles/client_pki/tasks/main.yml @@ -66,6 +66,11 @@ environment: STEPPATH: "{{ client_pki_steppath }}" +- name: Rendre le certificat racine lisible par tous (cert public, requis par les clients TLS) + ansible.builtin.file: + path: "{{ client_pki_steppath }}/certs/root_ca.crt" + mode: "0644" + - name: Obtenir le certificat d'hote ansible.builtin.command: cmd: >- diff --git a/roles/serveur_keycloak/defaults/main.yml b/roles/serveur_keycloak/defaults/main.yml index 719538e..2a4caed 100644 --- a/roles/serveur_keycloak/defaults/main.yml +++ b/roles/serveur_keycloak/defaults/main.yml @@ -58,3 +58,8 @@ serveur_keycloak_role_mapper_clients: [] # Assignations rôle→utilisateur (ex. [{user: testmail, role: grafana-editor}]). # En prod, préférer l'assignation via groupe d'annuaire ; ici, explicite pour la preuve. serveur_keycloak_role_assignments: [] + +# TLS vers PostgreSQL (zero-confiance). Vide = pas de verif (compat). 'verify-full' = +# chiffre + verifie le cert serveur contre le root_ca step-ca (l'hote doit etre dans le SAN). +serveur_keycloak_db_sslmode: "" +serveur_keycloak_db_sslrootcert: "/etc/step/certs/root_ca.crt" diff --git a/roles/serveur_keycloak/templates/keycloak.conf.j2 b/roles/serveur_keycloak/templates/keycloak.conf.j2 index 04a8373..068bef3 100644 --- a/roles/serveur_keycloak/templates/keycloak.conf.j2 +++ b/roles/serveur_keycloak/templates/keycloak.conf.j2 @@ -2,6 +2,9 @@ db=postgres db-url-host={{ serveur_keycloak_db_host }} db-url-database={{ serveur_keycloak_entree.base }} +{% if serveur_keycloak_db_sslmode | default('') %} +db-url-properties=?sslmode={{ serveur_keycloak_db_sslmode }}&sslrootcert={{ serveur_keycloak_db_sslrootcert }} +{% endif %} db-username={{ serveur_keycloak_entree.proprietaire }} # Derriere serveur_nginx (TLS termine a l'edge).