Bonjour à tous,
je suis en train de tester Mariadb comme alternative à la base par defaut de home assistant.
je suis parti d’une installe docker sans passer par l’addon pour mariadb.
Home assistant est installé en supervised sur debian11.
j’arrive à faire fonctionner HA avec Mariadb sans soucis.
Maintenant je voudrais que la connexion HA → mariadb soit chiffré.
j’ai créé mes certificats et suivi la doc pour configuré mariadb
j’ai fait un test de connexion avec depuis un client mariadb-clients et ça marche :
Current user: phpuser@172.50.10.1
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Current pager: stdout
Using outfile: ‹ ›
Using delimiter: ;
Server: MariaDB
Server version: 10.8.3-MariaDB-1:10.8.3+maria~jammy mariadb.org binary distribution
Protocol version: 10
Connection: 172.50.0.2 via TCP/IP
j’essai de le faire pour home assistant (j’ai repris le meme user pour etre sur « phpuser »
j’ai ajouté dans mon configuration.yaml :
mais je vois pas bien comment cela peut marcher si il ne va pas chercher mes certificats clients
je les ai placé dans /usr/share/hassio/ssl mais ça ne marche pas.
la doc de recorder via mariadb donne bien cette info de ssl=true mais c’est tout :
MariaDB (omit pymysql, using TLS encryption)
et mon message d’erreur dans HA :
[homeassistant.components.recorder.core] Error during connection setup: (MySQLdb.OperationalError) (2019, « Can’t initialize character set utf8mb4;ssl=true (path: compiled_in) »)
comme si il ne comprenait pas le « ;ssl=true » qui considère comme partie entière de charset
Je met de coté le fait discutable qu’avoir du mariadb en substitution apporte déjà quelque chose mais puisque les 2 containers (HA et mariadb) sont normalement sur un vlan docker identique pour communiquer:
Assure-toi qu’uniquement ces 2 là y sont connectés (vlan dédié type bridge), les flux seront déjà isolés
le chiffrage coute en cpu/mémoire/bande passante
les certificats sont à gérer (autorité, renouvellement etc)
Si on fait le calcul, la mise en place d’un tel chiffrage de la connexion n’a absolument AUCUN apport/gain et ajoute SEULEMENT des contraintes. Une bonne gestion du réseau docker est suffisante. Donc la question est quel est le besoin ?
Je ne vais pas rentrer dans les détails du pourquoi du comment… quel est l’interet de chiffrer et encore moins
le cout sur les perfs (on parle de HA là on peut faire un autre topic sur le sujet pas de soucis !
Je souhaite tout simplement faire le test et voir si ça marche et si c’est possible.
pour les certificats j’ai mis 365000 jours avant que j’ai besoin de les renouveler donc ça va le faire
Comme je l’ai dis plus haut la connexion sans ssl de HA vers Mariadb fonctionne donc oui ils sont bien dans un network où ils se voient et communiquent bien !
Je propose de commencer plus ‹ ouvert › et sans SSL, just pour voir si c’est les certificats ou non.
Mon réseau est sur 192.168.x.x., mon HA sur ‹ host › et je ne doit pas specifier l’IP du container, just l 'ip de la machine ou mysql marche
Soit : l’intérêt pédagogique est certain. Une bonne config docker tout autant
De là à faire du SSL sur HA et à l’exploiter au quotidien par HA c’est plus tout à fait pareil
Sûrement en effet mais encore une fois là n est pas le sujet … c est un super exercice je trouve
Alors comme je l ai dis sans ssl ça marche
C est à dire : ne pas mettre ssl=true dans db_url et repasser le compte phpuser en connexion normal : tout fonctionne
C’est aussi le sujet car si de ton coté, tu va jouer avec SSL et faire l’exercice : pas de souci. Sauf que dans quelques semaines, un autre utilisateur qui tombera sur ce sujet et voudra prendre exemple sans forcément comprendre les tenants et aboutissants d’un tel choix. Là au moins les choses sont dites même si tu juges que pour toi ça ne sert à rien.
Personnellement moi je remplacerai ;ssl=true par &useSSL=true c’est beaucoup plus conforme au standard jdbc
Merci Pulpy la piste était bonne la syntaxe correct est : recorder_db_url: 'mysql://ha_user:<mot_de_passe>"@172.xx.xx.xx/home_assistant?charset=utf8mb4&ssl=true'
j’ai donc HA en SSL / Base de données Mariadb et connection chiffrée entre ha et mariadb