HA & Cloudflared & let's Encrypt problème avec HTTPS

Bonjour a tous,

Mon problème est le suivant, j’ai créé un nom de domaine dans OVH

puis effectué les déclarations dans Cloudflared

puis installation du module complémentaire Cloudflared

et déclaration dans configuration.yaml

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24

après cette configuration faite

j’accède avec http://xxxxxxxxx.ovh a mon HA

en revanche le problème est quand je veux configurer let’s Encrypt pour sécurisé mon accès, j’obtiens un message erreur dans la log.


Certbot failed to authenticate some domains (authenticator: standalone). The Certificate Authority reported these problems:
  Domain: xxxxxxxx.ovh
  Type:   unauthorized
  Detail: 2606:4700:3037::6815:4219: Invalid response from http://xxxxxxxx.ovh/.well-known/acme-challenge/dt0PDPZWkG5xefB0DfMeDVh2dFONV0adnG6AXkRu8lA: 404

Hint: The Certificate Authority failed to download the challenge files from the temporary standalone webserver started by Certbot on port 80. Ensure that the listed domains point to this machine and that it can accept inbound connections from the internet.

Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
s6-rc: info: service legacy-services: stopping

Ma configuration

## System Information

version | core-2025.3.3
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.13.2
os_name | Linux
os_version | 6.12.18-haos
arch | aarch64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
HACS Data | ok
GitHub API Calls Remaining | 5000
Installed Version | 2.0.5
Stage | running
Available Repositories | 1621
Downloaded Repositories | 1

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 15.0
-- | --
update_channel | stable
supervisor_version | supervisor-2025.03.3
agent_version | 1.7.2
docker_version | 28.0.1
disk_total | 28.0 GB
disk_used | 12.8 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | 
board | green
supervisor_api | ok
version_api | ok
installed_addons | File editor (5.8.0), Terminal & SSH (9.16.0), Get HACS (1.3.1), Node-RED (19.0.2), Samba share (12.5.0), ZeroTier One (0.20.0), ESPHome Device Builder (2025.3.2), Cloudflared (5.2.11), Let's Encrypt (5.4.4), Voltalis Bridge (1.4.1)

</details>

<details><summary>Dashboards</summary>

dashboards | 3
-- | --
resources | 0
views | 8
mode | storage

</details>

<details><summary>Network Configuration</summary>

adapters | lo (disabled), end0 (enabled, default, auto), hassio (disabled), docker0 (disabled), ztfp6pjelb (disabled), vethb09ca67 (disabled), veth098c8f1 (disabled), vethfc28cd0 (disabled), veth60ce1f8 (disabled), veth4b352b1 (disabled), veth33d1b54 (disabled), vethcd81cf7 (disabled), veth7a9bc01 (disabled), vethfd265cc (disabled)
-- | --
ipv4_addresses | lo (127.0.0.1/8), end0 (192.168.1.144/24), hassio (172.30.32.1/23), docker0 (172.30.232.1/23), ztfp6pjelb (192.168.192.147/24), vethb09ca67 (), veth098c8f1 (), vethfc28cd0 (), veth60ce1f8 (), veth4b352b1 (), veth33d1b54 (), vethcd81cf7 (), veth7a9bc01 (), vethfd265cc ()
ipv6_addresses | lo (::1/128), end0 (2001:861:110:1940:fec9:42b2:b451:fe8d/64, fe80::43c9:902c:c110:fa13/64), hassio (fe80::9c3a:7dff:fe15:6c72/64), docker0 (fe80::e4bd:c7ff:fe28:f1be/64), ztfp6pjelb (fe80::2c70:e2ff:fe7f:ace/64), vethb09ca67 (fe80::b8e9:5cff:fecf:63cd/64), veth098c8f1 (fe80::c004:67ff:fe55:6667/64), vethfc28cd0 (fe80::94d5:6cff:fe20:ba9d/64), veth60ce1f8 (fe80::30e4:68ff:feb3:56bf/64), veth4b352b1 (fe80::4c73:20ff:feff:d8fc/64), veth33d1b54 (fe80::b47e:7ff:fe81:e82d/64), vethcd81cf7 (fe80::6002:3eff:fe14:6296/64), veth7a9bc01 (fe80::60b8:21ff:fe2b:aa42/64), vethfd265cc (fe80::d860:5cff:fe00:47c4/64)
announce_addresses | 192.168.1.144, 2001:861:110:1940:fec9:42b2:b451:fe8d, fe80::43c9:902c:c110:fa13

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 6 mars 2025 à 18:43
-- | --
current_recorder_run | 28 mars 2025 à 12:21
estimated_db_size | 405.02 MiB
database_engine | sqlite
database_version | 3.48.0

</details>

Merci d’avance pour votre aide.

Bonjour @JLouis,

Si tu passes par Cloudflare (et donc l’add-on Cloudflared côté HA pour le tunnel), sauf erreur de ma part tu n’as pas besoin de Let’s Encrypt pour passer en HTTPS, tout est nativement géré par Cloudflare.

Dans ton interface de gestion Cloudflare, tu dois pouvoir forcer le passage en HTTPS de connexion initiale en HTTP. Le paramétrage du certificat se fait également dans l’interface Cloudflare.

N’hésite pas à regarder tous les menus et sous-menu de l’interface pour voir toutes les fonctionnalités de sécurité. L’interface est assez verbeuse et pas toujours intuitive mais tu trouveras tout ce qu’il te faut normalement.

1 « J'aime »

Bonjour

Merci pour ton aide

Effectivement ce n’est pas très intuitif, en revanche j’y suis arrivé en restant dans la version gratuite.

Donc a ton avis cette configuration suffit amplement pour sécuriser mon HA ?

Bonjour,

vous passez par un tunnel cloudflare.

L’option que vous avez activée n’a pas de rapport avec votre besoin et ne sert à rien dans votre cas.

Il faut activer « Always use HTTPS » comme indiqué, pour trouver la fonction il y a un mode aide/recherche sur Cloudflare qui est très bien fait.

Si vous ne trouvez pas dites le.

Je l’ai trouvé et mis en place.

Dites moi si c’est correct ?
Merci

Bonjour @Dan92,

Oui effectivement pour le tunnel cette option ne sert à rien si c’est la seule utilisation du nom de domaine.

@JLouis,

Oui c’est bien cette option.

Tu peux également rajouter des règles côté Cloudflare pour n’autoriser des connexions que depuis des IP françaises par exemple. Ça peut être contourné mais c’est une sécurité supplémentaire.

Côté HA, tu peux activer un auto-ban après X tentatives de connexions infructueuses en rajoutant les 2 dernières lignes ci-dessous (ici ban après 5 tentatives) :

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
  ip_ban_enabled: true
  login_attempts_threshold: 5

Les IP bannis se trouveront dans un fichier « ip_bans.yaml » dans le même répertoire que ton fichier « configuration.yaml » si jamais tu bannes par erreur un de tes appareils supprime les lignes concernées.

Côté HA tu peux également activer l’authentification à double facteur.

Oui c’est la bonne option.
rien de plus à ajouter que ce qu’écrit @Integra

Bonjour,

De mon côté, l’utilisateur administrateur qui ne peut se connecter que depuis une adresse locale dédiée à la configuration de HA. Les autres utilisateurs ne disposent pas de privilèges administratifs, et l’authentification à deux facteurs (2FA) est activée sur l’ensemble des comptes, en complément des mesures mentionnées précédemment.

Idéalement, j’aimerais aller encore plus loin en restreignant l’accès depuis l’extérieur uniquement à mon smartphone. Cependant, je n’ai pas encore approfondi cette configuration.