Prise en charge de l'HTTPS dans l'ajout de profil
Lulucmy opened this issue · 8 comments
Bonjour,
Tout d'abord bravo pour votre outil très pratique. Il fonctionne parfaitement sur Mac et avec différent types de Livebox (j'ai pu tester les 3 & 5 sans soucis).
Le seul problème que j'ai rencontré c'est en ajoutant les URLs pour la gestion à distance. Je passe par un DyDNS qui oblige à utiliser HTTPS.
La fonction suivante "force" le HTTP à chaque connexion, et impossible de s'y connecter sans...
Lines 116 to 124 in 8141e5f
Merci et bonne continuation :)
Bonsoir, merci pour vos commentaires !
Ah je n'avais pas pensé à ce cas précis :-)
Avez vous Python installé pour essayer des modifications sur le source pour vérifier que cela marche bien ? J'ai des doutes sur la bonne prise en charge de l'HTTPS par le programme...
Avez vous Python installé pour essayer des modifications sur le source pour vérifier que cela marche bien ? J'ai des doutes sur la bonne prise en charge de l'HTTPS par le programme...
Pas de soucis, je teste ça
Ca fonctionne en modifiant CleanURL & LmSession :
# Cleanup URL
def CleanURL(iURL):
n = len(iURL)
if n:
if not iURL[n - 1] == '/':
iURL += '/'
if not iURL.startswith('http://') and not iURL.startswith('https://'):
iURL = 'http://' + iURL
return iURL
Comme les certificats TLS sont mauvais, il faut ajouter verify = False
aux requêtes de LmSession.py :
r = self._session.post(self._url + 'ws', data = aAuth, headers = self._sahServiceHeaders, timeout = DEFAULT_TIMEOUT, verify = False)
r = self._session.post(self._url + 'ws', data = '{"service":"Time", "method":"getTime", "parameters":{}}', headers = self._sahServiceHeaders, timeout = DEFAULT_TIMEOUT, verify = False)
t = self._session.post(self._url + c, data = json.dumps(aData), headers = self._sahServiceHeaders, timeout = iTimeout, verify = False)
t = self._session.post(self._url + c, data = json.dumps(aData), headers = self._sahEventHeaders, timeout = iTimeout, verify = False)
D'un point de vue sécurité c'est pas terrible, mais dans ce contexte à vous de juger
Très bien merci pour votre test !
Je vais regarder ça et essayer de me renseigner pour essayer de conserver la sécurité... Sinon tant pis et je mettrai un gros avertissement dans la documentation.
Bonjour j'ai commencé à tester un peu.
De mon côté avec les changements ci dessus, une Livebox 5 et l'accès à distance activé, je n'arrive pas à me connecter même sans passer par un DynDNS.
Que je mette mon IP internet après http:// ou https:// c'est le même combat : le serveur ne répond pas (d'ailleurs il aurait été étonnant que cela marche en http://).
Vous avez réussi avec une Livebox 5 ? Si oui j'aimerai comprendre la configuration exacte...
Merci !
Bonjour,
- Dans la configuration de la Livebox 5, l'accès a distance est activé (avec username/password/port personnalisé)
- Le DynDNS est hébergé par ChangeIP
Les seules choses que j'ai modifié dans le code sont dans mon précédent commentaire, et dans le champ URL de la Livebox sur l'app, j'ai entré : https://nomdedomain.com:10000/
A noter que cela ne fonctionne pas sans le HTTPS et sans le port choisi dans la configuration.
Merci & bon week-end :)
Bon impossible de faire marcher ça avec ma config pour l'instant, que je tente depuis mon VPN ou depuis une connexion 4G, même en tapant l'URL dans plusieurs browsers, depuis un PC, un Mac ou depuis un appareil iOS, le serveur ne répond jamais...
Mais j'ai tout de même incorporé les changements nécessaires pour au moins essayer. C'est maintenant dans le repo.
La release v1.1 contenant cette évolution est maintenant publiée.