diff --git a/pica-tls-certs-monitor/Dockerfile b/pica-tls-certs-monitor/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..770f82a736f16e23bfd2034e7c1fd0396503ab61 --- /dev/null +++ b/pica-tls-certs-monitor/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:3.9 + +WORKDIR /usr/src/app +COPY requirements.txt ./ + +RUN apk add --no-cache python3 && \ + python3 -m ensurepip && \ + rm -r /usr/lib/python*/ensurepip && \ + pip3 install --upgrade pip setuptools -r requirements.txt && \ + rm -r /root/.cache \ + && mkdir /certs + +ENV acme_file "/certs/acme.json" +ENV cert_root "/output" +ENV log_level "INFO" + +COPY app/*.py ./ + +ENTRYPOINT python3 ./tls_certs_monitor.py --acme-file=${acme_file} --output-dir=${cert_root} --loglevel=${log_level} diff --git a/pica-tls-certs-monitor/README.md b/pica-tls-certs-monitor/README.md new file mode 100644 index 0000000000000000000000000000000000000000..47036358db2411f0e273e50584c29d2459d8e363 --- /dev/null +++ b/pica-tls-certs-monitor/README.md @@ -0,0 +1,21 @@ +# TLS Certs Monitor + +## Explication + +[TLS Certs Monitor](https://gitlab.utc.fr/picasoft/projets/tls-cert-monitor) est un outil permettant de faciliter la génération de certificats pour les services non-HTTPS. + +En effet, notre reverse-proxy Traefik génère automatiquement des certificats pour chaque service indiquant le bon label dans le Docker Compose. En revanche, dans la version que nous utilisons, ce n'est qu'un reverse-proxy HTTP/HTTPS (web), il ne peut pas servir de frontend pour d'autres services TCP, comme le serveur LDAP, le serveur mail, une base de donnée, etc. + +En revanche, sa facilité à générer des certificats et surtout le désir de centralisation de la gestion des certificats a poussé le développement de cet outil, qui évite de mettre en place un `certbot` par service, par exemple. + +Basiquement, il va extraire les certificats générés par Traefik et les mettre à disposition des services. + +La documentation complète est disponible [ici](https://gitlab.utc.fr/picasoft/projets/tls-cert-monitor) + +## Déploiement + +Il n'y a pas de configuration spécifique à ce service ; la configuration se fait sur les services supervisés. Il suffit de déployer ce conteneur avec un `docker-compose up -d` sur tous les hôtes souhaités (*i.e.* qui contiennent des services non-HTTPS qui ont besoin de certificats ; `monitoring` est le premier candidat avec le serveur mail et le serveur LDAP) + +## Mise à jour + +Il suffit de mettre à jour la variable d'environnement `TLS_CERTS_MONITOR_VERSION` dans le Dockerfile, quand une nouvelle release (tag) apparaît sur le dépôt. diff --git a/pica-tls-certs-monitor/clair-whitelist.yml b/pica-tls-certs-monitor/clair-whitelist.yml new file mode 100644 index 0000000000000000000000000000000000000000..a9d6ed5bdae04856ade1de9572cbdfee041aa4b9 --- /dev/null +++ b/pica-tls-certs-monitor/clair-whitelist.yml @@ -0,0 +1 @@ +generalwhitelist: diff --git a/pica-tls-certs-monitor/docker-compose.yml b/pica-tls-certs-monitor/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..9d196647efbe9c97855c98fef8b7717aa8dc23c9 --- /dev/null +++ b/pica-tls-certs-monitor/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3.7' + +services: + tls-cert-monitor: + image: tls-cert-monitor:v1.4 + container_name: tls-cert-monitor + volumes: + - /DATA/docker/traefik/certs/acme.json:/certs/acme.json + - /DATA/docker/tls/certs:/output + - /var/run/docker.sock:/var/run/docker.sock + restart: unless-stopped