Page 4 sur 4

Re: Service web avec Domoticz (Raspberry)

Publié : 08 mars 2016, 13:43
par jackslayter
le VPN tu l'active que lorsque tu veux accéder à ton réseau, de plus tu ne passe pas par lui pour aller sur internet.

Re: Service web avec Domoticz (Raspberry)

Publié : 08 mars 2016, 14:40
par rimram31
JC38 a écrit :...Le fait de passer en SSL n'empêchera pas n'importe qui connait l'url de retrouver des infos confidentielles ...
Au temps pour moi ... je suis parti bille en tête sur une conf https (qui crypte bien quand même entre le client et le serveur ;) ).

J'avais oublié qu'effectivement ImperiHome propose un user/mdp, je suppose qu'il gère a minima Basic Authentication, dans ce cas nginx permet de le faire -> https://www.digitalocean.com/community/ ... untu-12-10

Comment le mettre en oeuvre dans ton cas ? J'ai peur de te dire des anneries, je n'ai pas de nginx sous la main. A priori, je créerai une section location /imperihome (par exemple) contenant les directives de proxy vers 3001 + auth_basic ... dans la section serveur par defaut de nginx (port 80 a priori). Du coup http://<...>/imperihome serait redirigé vers MyImperiHome et protégé par mot de passe, url a donner ensuite a Imperihome avec user/pwd pour l'adresse du serveur.

Re: Service web avec Domoticz (Raspberry)

Publié : 09 mars 2016, 00:27
par JC38
Rimram : Dans sa page wiki sur Domoticz, epierre indique une config pour nginx en bas de sa page http://domoticz.com/wiki/ImperiHome.
Mais pour moi, il fait référence à une config "ancienne" avec un domoticz passant par nginx. Aujourd'hui, il ne faudrait plus qu'une conf pour MyDomoAtHome passant par nginx.
J'ai donc essayé de constituer un fichier de conf nommé mdat, mais je ne l'ai pas encore essayé car je pense qu'il est faux et incomplet.
location /iss/ --> à quoi cela doit correspondre
j'ai un doute sur le port du listen, il devrait être différent de celui auquel on transfert le flux http non (proxy_pass) ?
Je suis désolé, je pars vraiment de loin même si je suis familier avec les systèmes informatiques, mais débutant en linux. :oops:

Code : Tout sélectionner

access_log off;
add_header Cache-Control public;
server_tokens off;
server  {
   include    /etc/nginx/proxy_params;
   listen 3001;
   keepalive_timeout 70;
   server_name localhost;
   add_header X-Frame-Options SAMEORIGIN;
   location /iss/ {
     proxy_pass http://localhost:3001/;
     auth_basic            "Access Restricted";
     auth_basic_user_file  "/etc/nginx/.htpasswd";
     access_log /var/log/nginx/mdat.access.log;
     error_log /var/log/nginx/mdat.error.log;
   }
 }

Re: Service web avec Domoticz (Raspberry)

Publié : 09 mars 2016, 08:41
par rimram31
La configuration dans le wiki est ce a quoi je pensais, une directive location qui permet d'inclure une directive de restriction d'accès -> auth_basic qui va faire ce que tu veux. La configuration donnée par epierre dans ce wiki est valide et fait ce que je te disais.

Du coup tu me fais apprendre comment nginx gère sa conf (c'est apache que je connais bien :-)). Un serveur http comme apache ou nginx est capable de gérer/écouter plusieurs ports et aussi répondre a plusieurs "server name" (http://<server name>....), en nginx tu utiliseras une section server pour ça ou tu mettras ces deux informations et éventuellement d'autre éléments de configuration.

Au sein de cette directive server tu peux mettre des directives location qui vont te permettre de décrire différentes "sections" sorte de "sous répertoire" de ton site. Le paramètre qui suit location dans le location /iss/ par exemple, ici /iss/ est la partie d'url qui va être gérée par le serveur et répondre aux directives de la section location correspondante. Quand tu taperas http://<ton serveur name>:<port>/iss/... nginx va appliquer la section server correspondante a serveur name et port et la section location correspondante a ce qui suit dans l'url.

Un serveur web peut servir ainsi de "point d'entrée" sur des urls http://monserver:... avec différentes sous sections redirigeant a différents endroits (chemin de fichier), programmes (php, perl, java, ...) ou d'autres serveurs http via la directive proxy qui est celle qui nous intéresse.

Donc :D pour revenir a ta configuration ... OU tu ajoutes comme tu l'as fais une nouvelle section server mais tu prends un autre numéro de port que celui déjà utilisé par mydomoathome ou tout autre programme d'ailleurs sur ta machine (deux "programmes" ne peuvent pas utiliser le même numéro de port), c'est le port qui sera celui "vu" par ImperiHome. OU tu ajoutes la section location telle que décrite par epierre dans le wiki a une section server déjà existante.

A priori nginx est "livré" avec une section server "par defaut" qui est probablement sur le port 80 ou 8080, section que tu peux utiliser en l'adaptant.

Dans ton cas, c'est domoticz qui gérera le port 8080 "de l'extérieur" et nginx un autre port (ni 8080, ni 3001 ...) pour renvoyer vers MyDomoAtHome -> localhost:3001 (de serveur a serveur là) en te permettant de protéger l'accès par un username/pwd, ce que ne fait pas MyDomoAtHome, d'ou l'utilisation de cette technique. Attention c'est l'url "vue" de l'extérieur qu'il faudra utiliser pour le client ImperiHome: http://<ton serveur>:<port>/iss/ (location).

Prends un peu de temps a potasser de la documentation nginx et/ou des exemples de configuration http://nginx.org/en/docs/beginners_guide.html qui t'expliqueront plus en détail.

Re: Service web avec Domoticz (Raspberry)

Publié : 09 mars 2016, 22:30
par JC38
Bonsoir,
Je commence à voir le bout du tunnel. Le login/password est bien demandé mais je l'ai désactivé, le temps de franchir une nouvelle étape.
Pour info, voici le fichier de conf qui m'a permis de passer de nginx à mdat

Code : Tout sélectionner

access_log off;
add_header Cache-Control public;
server_tokens off;
server  {
   include    /etc/nginx/proxy_params;
   listen 8000;
   keepalive_timeout 70;
   server_name localhost;
   add_header X-Frame-Options SAMEORIGIN;
   location / {
     proxy_pass http://localhost:3001/;
     #auth_basic            "Access Restricted";
     #auth_basic_user_file  "/etc/nginx/.htpasswd";
     access_log /var/log/nginx/mdat.access.log;
     error_log /var/log/nginx/mdat.error.log;
   }
 }
Avec ces réglages, j'ai bien mdat directement sur le port 8000.
Sur l'url http://mylanip:8000/ (bien mettre le / à la fin) , je suis sur le site de mdat sinon avec http://mylanip:8000, je tombe logiquement sur nginx

Imperihome fonctionne donc en utilisant la même url qu'avec Iss-Domo, ça c'est parfait (bien sur, il faut changer le port d'Iss-domo ou l'arrêter).
Ce qui l'est moins, c'est que je ne peux pas éditer la config du système dans Imperihome, car malgré la même url, il voit (croit) que j'ai changé de système et me demande de refaire une conf complète.
Je pense que cela vient de ce qu'on trouve dans le début des données renvoyées par http://mylanip:8000/devices. Il doit y avoir moyen de changer cela quelque part du côté de MyDomoAtHome pour le faire passer pour Iss-Domo aux yeux de Imperihome, mais le pb, c'est que même si j'ai conservé Iss-domo, il ne fonctionne plus correctement depuis le passage à Jessie, je ne peux donc pas comparer les 2 pour savoir quelles valeurs changer. Si quelqu'un à Iss-Domo, je suis preneur des premières lignes de valeurs retournées.

Re: Service web avec Domoticz (Raspberry)

Publié : 09 mars 2016, 22:49
par JC38
Je continue avec quelques nouvellles infos sur le fonctionnement d'Imperihome et les passerelles ISS
Imperihome interroge l'url de la passerelle avec cette url http://ip:port/system (ip:port = passerelle ISS)

Iss-Domo repond :

Code : Tout sélectionner

{
id: "ISS-Domo",
apiversion: 1
}
Quand MyDomoAtHome répond :

Code : Tout sélectionner

{
id: "MyDomoAtHome",
apiversion: 1
}
Il "suffirait" donc de renvoyer l'ID connu par ImperiHome pour que son wizard laisse modifier sa config. :x

Re: Service web avec Domoticz (Raspberry)

Publié : 09 mars 2016, 23:33
par JC38
Pb résolu
viewtopic.php?f=12&t=573&start=170#p14694

Maintenant, reste plus qu'à voir si on peut forcer Imperihome à communiquer en SSL avec nginx :oops:

Re: Service web avec Domoticz (Raspberry)

Publié : 10 mars 2016, 10:05
par rimram31
Content que tu ais réussi a t'en dépetrer

Re: Service web avec Domoticz (Raspberry)

Publié : 04 avr. 2016, 13:51
par epierre
JC38 a écrit :Pb résolu
viewtopic.php?f=12&t=573&start=170#p14694

Maintenant, reste plus qu'à voir si on peut forcer Imperihome à communiquer en SSL avec nginx :oops:
oui j'y arrive anec NGINX ;-)