- État Close
- Type de tâche Anomalie
- Catégorie Freebox OS → API
-
Assignée à
Romain FLIEDEL (rfliedel)
- Système d'exploitation Tous
- Sévérité Basse
- Priorité Normale
- Basée sur la version 3.3.5
- Due pour la version Non décidé
- Date d'échéance Non décidé
- Votes 0
- Privée Non
Ouverte par lool (lool) - 02/01/2017
Dernière édition par Romain FLIEDEL (rfliedel) - 28/03/2017
FS#21036 - api_domain ne renvoie pas le domaine correspondant au certificat
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
mardi 28 mars, 2017 12:56:58
Raison de clôture : Résolu
Commentaires supplémentaires de clôture : En 3.4.0
lundi 13 février, 2017 12:32:02
Bonjour,
une mise à jour de la documentation est en cours.
Pour les applications qui utilisent l'api freeboxos il convient d'utiliser api_domain et de vérifier qu'il a été émis par "Freebox ECC Root CA" ou par "Freebox Root CA" en ajoutant les roots ca suivants:
L'avantage c'est que l'accès https avec ce type de domaine et de certificat est configuré automatiquement sans intervention de l'utilisateur pour toutes les freebox