Description de la tâche
Bonjour,
Pour parler à une Freebox Server, il faut a priori commencer par les découvrir localement puis s’y connecter en http/https.
La réponse aux requêtes de découverte encourage à utiliser le https si disponible, sur ma freebox j’obtiens le port https :
% http http://freebox-server.local/api_version
[...]
"api_domain": "xyz.fbxos.fr",
[...]
"https_available": true,
"https_port": 29040,
% dns-sd -L "Freebox Server" _fbx-api._tcp local.
22:14:57.454 Freebox\032Server._fbx-api._tcp.local. can be reached at Freebox-Server.local.:80
api_version=3.0 device_type=FreeboxServer1,1 api_base_url=/api/ uid=xyz https_available=1 https_port=29040 api_domain=xyz.fbxos.fr
Cependant le domaine renvoyé dans les réponses est le domaine https créé par défaut. Sur cette freebox, j’ai configuré un domaine Let’s Encrypt personnalisé (en abc.freeboxos.fr), et du coup c’est ce certificat qui m’est renvoyé sur le port 29040.
Conséquence : les requêtes https vers xyz.fbxox.fr échouent avec des clients qui vérifient le CN du certificat.
Il faudrait donc renvoyer le premier domaine perso valide dans les requêtes de découverte de l’adresse de l’API, ou bien conserver le certificat en xyz.fbxos.fr comme certificat alternatif (via SNI).
PS : peut-être la documentation sur http://dev.freebox.fr/sdk/os/ pourrait-elle refléter les variables api_domain, https_available et https_port ?
Bien à vous, - Loïc Minier
|