SSL - Docker

Mon problème

J’ai installé HA dans un container docker.
En copiant mes certificats fullchain.pem et privkey.pem dans /config et en ajoutant les lignes

http:
ssl_certificate: /config/fullchain.pem
ssl_key: /config/privkey.pem

dans le configuration.yml, tout est OK.

Je veux remplacer les certificats par des liens symboliques.
Depuis mon host :

ln -s /etc/letsencrypt/live/<monha>/fullchain.pem /config/fullchain.pem

Les certificats sont bien visibles dans le container :

docker exec -it homeassistant sh -c 'ls -la *.pem'
–>fullchain.pem → /etc/letsencrypt/live//fullchain.pem
–>privkey.pem → /etc/letsencrypt/live//privkey.pem

Mais impossible de me connecter !

Erreurs dans le log :

Invalid config for 'http' at configuration.yaml, line 13: not a file for dictionary value 'http->ssl_certificate', got '/config/ssl/fullchain.pem', please check the docs at HTTP - Home Assistant
Invalid config for 'http' at configuration.yaml, line 14: not a file for dictionary value 'http->ssl_key', got '/config/ssl/privkey.pem', please check the docs at HTTP - Home Assistant

Même erreur si je ‹ bind › mon répertoire host /etc/letsencrypt/live//` sur un volume du container.

Une idée sur l’origine de ce problème ?

Ma configuration


System Information

version core-2024.3.0
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.1.0-rpi8-rpi-v8
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1405
Downloaded Repositories 2
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 4
resources 1
views 5
mode storage
Recorder
oldest_recorder_run 12 mars 2024 à 09:36
current_recorder_run 14 mars 2024 à 17:24
estimated_db_size 6.86 MiB
database_engine sqlite
database_version 3.44.2

Salut

Pourquoi faire des liens symboliques dans le container, je ne vois pas bien l’objectif :

  • les fichiers sont générés hors container… donc ils sont probablement déjà dans /etc/letsencrypt/live/xxxxxxxx de l’os
  • on ne passe pas sa vie à manipuler les trucs dans le container, c’est en principe juste un espace de travail, pas de bricolage ni un OS ou une VM
  • tu peux monter les fichiers de l’os vers le container à peu près n’importe où… donc au pire, tu montes les fichiers directement au bon endroit

Donc pour moi, aucun intérêt du point de vue du container…

Les certificats Letsencrypt sont valides 180 jours.
Letsencrypt permet de les renouveller automatiquement.
L’objectifs est donc d’éviter de les copier depuis le host vers le container.

C’est bien l’objet de ma question.
Quand je monte mon répertoire host /etc/letsencrypt/live/xxxxxx/`, bien qu’il soit visible depuis la console du container, HA rencontre une erreur Invalid config for ‹ http › at configuration.yaml

Salut

Comment tu fais ton montage et quelle est la config ?

Parce que monter /etc/letsencrypt/live/xxxxxx/ => /config/ssl/ c’est suffisant pour HA. ça fait office de lien symbolique