Aller au contenu

Redirection 1&1 Https Via Htaccess Pour L'interface Du Syno


Messages recommandés

Bonjour,

voilà, j'ai un ds411j, un nom de domaine chez 1&1 et une redirection toute jolie de 1&1 vers mon syno selon le tuto:

http://bulla.hd.free.fr/domaine-1and1-hebergement-sur-synology/

j'ai mis en place le ssl avec startssl via le grossomodo tuto (car plein de choses à préciser à mon goût):

http://www.freeman59.fr/securisez-votre-nas-avec-ssl-startssl-ovh-17224

tout fonctionne, j'ai fêté ça au champagne...

seul chose qui manque à mon tableau de chasse, c'est la redirection https exclusivement pour les ip externe... (un ami en dehors de mon réseau local se connecte).

- je sais que l'on peut cocher dans l'interface la redirection mais elle est imposé à tous donc même en local qui crie à l'usurpation vis à vis de mon certificat (logique, valable que de l'extérieur)

- je souhaite me connecter avec mon ip local car plus rapide que de passer par l'extérieur avec le nom de domaine surtout quand je suis chez moi.

- je ne souhaite pas non plus modifier le fichier host comme je l'ai lu car cela revient à se connecter via l'extérieur (nom de domaine)

ce que je souhaite:

- un ip externe ne peux se connecter qu'en https (redirigé automatiquement biensûr car demander aux amis de mettre "https://" avant me fait penser à ça: http://imageshack.us/photo/my-images/26/img1533sl.jpg/

- moi en local je peux me connecter en http.

j'ai pensé à créer un htaccess pour forcer la redirection selon la faq de 1&1: http://faq.1and1.fr/hebergements/htaccess/10.html

et en le plaçant dans le sous dossier Web mais je vois bien que cela ne marche pas.

Lien vers le commentaire
Partager sur d’autres sites

j'ai pensé à créer un htaccess pour forcer la redirection selon la faq de 1&1: http://faq.1and1.fr/...taccess/10.html

et en le plaçant dans le sous dossier Web mais je vois bien que cela ne marche pas.

C'est quoi qui ne marche pas: la redirection se fait dans tous les cas (acces interne et externe) ou jamais?

Ou bien la redirection est incorrecte?

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir et merci...

ce qui ne marchais pas, c'est que je n'arrivais pas à forcer la connexion en https pour l'interface du syno à partir d'internet, je viens d'y arriver en plaçant ceci dans mon htaccess à la racine du dossier web:

RewriteEngine on

RewriteCond %{SERVER_PORT} ^80$

RewriteRule ^(.*)$ https: //www.domaine.fr:5001/webman/index.cgi$1 [R]

je ne sais pas si c'est propre car cela ne règle le problème que dans le cas de l'interface de connexion mais pour ce qui est de photo station, audio station, etc...j'imagine que je dois ajouter ces mêmes lignes dans mon htaccess en adaptant les ports.

est-ce la méthode la plus propres?

si c'est le cas, je mettrais en résolu !

Modifié par toumax
Lien vers le commentaire
Partager sur d’autres sites

Sauf qu'en ne mettant que cela tu vas faire la redirection en ssl dans tous les cas (meme pour les connexions locales) alors que tu as dis: "moi en local je peux me connecter en http"

Donc, pour cela, il faut en plus ajouter une ou plusieurs clauses "RewriteCond "pour exclure les connexions locales

Ceci devrait marcher:


RewriteEngine on

# remplacer 192 par un prefixe qui "matche" les IP de de ton réseau local

RewriteCond %{HTTP_HOST} !^192

# remplacer MONHOST par le hostname que tu utilise pour te connecter au syno sur le lan

RewriteCond %{HTTP_HOST} !^MONHOST$

RewriteCond %{SERVER_PORT} ^$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R]

NB: Je ne sais pas si et comment on peut dire à RewriteCond de ne pas tenir compte des majuscules/minuscules [EDIT] Trouvé, c'est "NC" (nocase):

RewriteCond %{HTTP_HOST} !^MONHOST$ [nc]

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Sauf qu'en ne mettant que cela tu vas faire la redirection en ssl dans tous les cas (meme pour les connexions locales) alors que tu as dis: "moi en local je peux me connecter en http"

C'est voulu car quand je suis en local, je rentre l'ip local de mon syno (sans ssl car le certif ne va pas) dans le navigateur -> page de connexion http

et de l'extérieur, je tape le nom de domaine...qui est redirigé sur mon dossier web et mon htaccess est appelé à ce moment là ->page de connexion https

donc je pense ne pas avoir besoin d'exclure le réseau local...

je dis pas trop de bêtise?

Lien vers le commentaire
Partager sur d’autres sites

C'est voulu car quand je suis en local, je rentre l'ip local de mon syno (sans ssl car le certif ne va pas) dans le navigateur -> page de connexion http

et de l'extérieur, je tape le nom de domaine...qui est redirigé sur mon dossier web et mon htaccess est appelé à ce moment là ->page de connexion https

donc je pense ne pas avoir besoin d'exclure le réseau local...

je dis pas trop de bêtise?

Désolé mais tu te trompes: le .htaccess va être pris en compte dans les deux cas.

Tu va voir d'ailleurs que qui si tu met en commentaire les deux premiers "rewritecond", apache va de rediriger "http://<ip de ton syno>" en "https://<ip de ton syno>"

[EDIT]

Oups, mea culpa

j'avais pas vu que c'est l'interface DSM (5000/5001) qui tu souhaitais rediriger..

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

tu as RAISON !! je viens de mettre mon ip local, et je suis redirigé vers mon nom de domaine en https avec mon htaccess...

je vais de suite exploiter ta suggestion.

Merci.

Attention: ma suggestion ne redirige pas vers l'interface DSM (port 5000). Elle ne traite que les connexion sur le serveur web privé (port 80).

Lien vers le commentaire
Partager sur d’autres sites

Pour l'acces à l'interface DSM (port 5000) faut savoir qu'elle est servie par un autre serveur apache que celui qui sert le port 80. Et ce dernier ne prend pas en compte le .htaccess du dossier web.

En outre, si, comme tu semble vouloir le faire, tu redirige toutes tes connexions arrivant sur le port 80 vers le port 5001 tu n'aura plus le moyen d'accéder au contenu du dossier web.

Donc il est *impératif* que tu décrive précisément le comportement que tu attends (sous la forme, url source -> redirection souhaitée, etc ...)

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Oui c'est vrai, mais ça me conforte sur le choix du htaccess..

j'imagine que l'on peut traiter le comportement de la redirection selon chaque port d'une application.

Ne pas oublier que le serveur apache qui gère le dossier web (et le .htaccess qu'il contient) ne s'occupe que des ports 80 et 443.

Les autres ports sont servis par le serveur apache "systeme", et ce dernier ne lit pas le .htaccess du dossier web.

Lien vers le commentaire
Partager sur d’autres sites

Pour l'acces à l'interface DSM (port 5000) faut savoir qu'elle est servie par un autre serveur apache que celui qui sert le port 80. Et ce dernier ne prend pas en compte le .htaccess du dossier web.

je n'utilise pas la fonction web (site internet) sur mon syno (DS411J trop lent du moins)

en faite, vous me faite comprendre qu'il me faudrait simplement modifier le htaccess de l'interface DSM(port 5000) en y ajoutant l'exclusion des connexions venant du réseau local.

comme ça j'active les redirection automatique en https via l'interface et comme j'aurais au préalable modifié ce htaccess, il n'imposera rien en local.

Savez-vous ou ce trouve CE htaccess ?

Modifié par toumax
Lien vers le commentaire
Partager sur d’autres sites

je n'utilise pas la fonction web (site internet) sur mon syno (DS411J trop lent du moins)

en faite, vous me faite comprendre qu'il me faudrait simplement modifier le htaccess de l'interface DSM(port 5000) en y ajoutant l'exclusion des connexions venant du réseau local.

comme ça j'active les redirection automatique en https via l'interface et comme j'aurais au préalable modifié ce htaccess, il n'imposera rien en local.

Savez-vous ou ce trouve CE htaccess ?

Il n'y en a pas par défaut mais le dossier ou il doit être est "/usr/syno/synoman/"

Attention: une petite erreur et tu perd l'acces DSM.

(Ca ne fait qu'une petite semaine que je bidouille les redirections (mod_rewrite) et je suis moins a l'aise pour trifouiller celui la.)

Lien vers le commentaire
Partager sur d’autres sites

Aucun problème...

Merci en tout cas pour tout...

J'ai quand meme pu te faire un début de htaccess pour le serveur apache "systeme", a déposer dans "/usr/syno/synoman/", qui fonctionne (pour les redirections du port 5000 -> 5001) :


RewriteEngine on


# 2 clauses pour exclure le réseau local, remplacer "MONHOST" par le hostname du syno sur le lan

RewriteCond %{HTTP_HOST} !^192

RewriteCond %{HTTP_HOST} !^MONHOST$ [nc]

# s'applique aux connexions port 5000

RewriteCond %{SERVER_PORT} ^5000$

# sert uniquement à capturer la partie host sans le no de port

RewriteCond %{HTTP_HOST} ^([^:]*)

RewriteRule ^(.*)$ https://%1:5001/%{REQUEST_URI} [L,R]

Suffit à priori de répéter le bloc final pour les autres paires de ports (http->https) à rediriger

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

J'ai quand meme pu te faire un début de htaccess pour le serveur apache "systeme", a déposer dans "/usr/syno/synoman/", qui fonctionne (pour les redirections du port 5000 -> 5001) :

Oui j'en suis bien conscient et je compte très fortement m'en inspirer. le merci est vraiment sincère...

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.