IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[URL rewriting] Avoir un seul répertoire en HTTPS


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut [URL rewriting] Avoir un seul répertoire en HTTPS
    Bonjour/soir à tous,

    Ayant obtenu un certificat SSL (OVH) sur un 240Plan.
    J'aimerais (pour une boutique) qu'une partie du site soit en https
    C'est à dire dès que l'internaute rentre des infos personnelles.
    Il faut soit mettre certains fichiers ou un répertoire avec https.
    Je pense que le répertoire est un meilleur choix.
    J'ai placé ces lignes dans un fichier .htaccess dans le répertoire compte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteCond %{HTTP_HOST} ^www.domaine.tld$
    RewriteRule ^(.*)$ https://www.domaine.tld/compte/$1 [QSA,L,R=301]
    Mais bon je trouve pas cela terrible sachant qu'il faudrait qu'à la racine du domaine que j'écrive un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^80$
    RewriteCond %{HTTP_HOST} ^www.domaine.tld$
    RewriteRule ^(.*)$ http://www.domaine.tld$1 [QSA,L,R=301]
    Pour repasser en http://

    Je préférerai une écriture d'un seul fichier .htaccess à la base du site et du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/compte/.*
    RewriteRule ^/compte/(.*) https://www.domaine.tld%{REQUEST_URI} [R,L]
    RewriteCond %{REQUEST_URI} !^/compte/.*
    RewriteRule ^(.*) http://www.domaine.tld%{REQUEST_URI} [QSA,R,L]
    Mais là ça coince.

    Avez vous une idée ?

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Je dirais que ça boucle : il faut que tu rajoutes les conditions sur les ports avant de faire les redirections. Tu peux aussi simplifier le premier RewriteRule car le test sur le chemin de l'URL est fait dans le premier RewriteCond (comme dans ton second RewriteRule, en fait) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/compte/.*
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*) https://www.domaine.tld%{REQUEST_URI} [R,L]
     
    RewriteCond %{REQUEST_URI} !^/compte/.*
    RewriteCond %{SERVER_PORT} !^80$
    RewriteRule ^(.*) http://www.domaine.tld%{REQUEST_URI} [QSA,R,L]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Merci de votre réponse,

    Cela à l'air de fonctionner.
    Je voudrai rajouter une fonction qui permet de forcer sur www quand il est omis (car le certificat est sur www.domaine.tld et pas sur domaine.tld seul).
    exemple si domaine.tld redirige sur www.domaine.tld
    dans le cas http et https

    J'ai pensé à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    RewriteCond %{HTTP_HOST} ^domaine.tld
    RewriteCond %{SERVER_PORT} ^80$
    RewriteRule ^(.*)$ http://www.domaine.tld/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^domaine.tld
    RewriteCond %{SERVER_PORT} ^443$
    RewriteRule ^(.*)$ https://www.domaine.tld/$1 [R=301,L]
    Ces lignes se situe avant celles mentionnées dans votre code plus haut.
    Elles fonctionnent pas, avez vous des idées ?

    Merci de votre collaboration

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Honnêtement, je n'en ai aucune idée. As-tu vidé le cache de ton navigateur avant de tester ? Tu fais des redirections 301 donc permanentes, et elles sont souvent cachées par les navigateurs.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    C'est bizarre, j'ai vidé le cache sous FF3.
    Rien de nouveau, je suis passé sur safari et après plusieurs F5 ça fonctionne sur safari puis sur FF.
    J'ai entretemps replacé .htaccess qui c'était peu être altéré à upload.

    En tout cas là ça va mieux.

    Ne serait t'il pas intéressant de rajouter un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Files .htaccess>
    order allow,deny
    deny from all
    </Files>
    en début de fichier pour renforcer la sécurité du .htaccess ?

    De plus en terme de sécurité (sur le https://) les navigateurs ne réagissent pas pareils :
    Safari 3.2 : en https:// si j'enlève les www il propose de continuer avec du coup le repassage en https://www donc OK.
    FF3 : lui marque immédiatement un échec de connexion sécurisé avec la possibilité d'ajouter une exception,
    IE 6 : si on souhaite continuer on repasse avec les www, donc Ok
    IE 7 : sans les www il trouve pas le certificat, donc il bloque la navigation. Si on force (poursuivre avec ce site) c'est bon il repasse avec www
    D'ailleurs en passant les informations données sur la page sont en plus bien pensées.
    Opera 9.6 : Signale un problème de certificat et si on accepte, repasse en www

    Du coup je me demande s'il n'y a pas de problème(s) possible si une personne souhaite passer sans les www au cours du scénario d'achat ?
    Ou alors la forcer sur une erreur 404 ?
    Faut il acheter un deuxième certificat de type domaine.tld sans les www ?
    Que se passe t'il avec la banque lors du passage vers leur page et le retour URL ?
    Pour la dernière question je n'y suis pas encore mais s'y vous avez des idées je suis preneur.

    Dans tous les cas merci déjà pour les réponses.

    Andéa

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Andéa Voir le message
    Ne serait t'il pas intéressant de rajouter un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Files .htaccess>
    order allow,deny
    deny from all
    </Files>
    en début de fichier pour renforcer la sécurité du .htaccess ?
    Théoriquement, c'est déjà fait dans le fichier httpd.conf. Pour le vérifier, essaie de télécharger le .htaccess avec ton navigateur : si tu y arrives, c'est effectivement nécessaire.

    Citation Envoyé par Andéa Voir le message
    Du coup je me demande s'il n'y a pas de problème(s) possible si une personne souhaite passer sans les www au cours du scénario d'achat ?
    Question idiote : pourquoi le ferait-elle ? Généralement, on clique sur des liens, des boutons, on ne bidouille pas les URL (personnellement, je ne l'ai jamais fait) : il suffit de t'assurer que tous les liens qui doivent mener aux pages sécurisées présentent bien les www.

    Citation Envoyé par Andéa Voir le message
    Ou alors la forcer sur une erreur 404 ?
    Faut il acheter un deuxième certificat de type domaine.tld sans les www ?
    L'achat du second certificat me paraît la meilleure option mais tu vas avoir de gros problèmes de configuration pour faire fonctionner les 2 certificats en même sur le même serveur.

    Citation Envoyé par Andéa Voir le message
    Que se passe t'il avec la banque lors du passage vers leur page et le retour URL ?
    Aucune idée, il faut voir avec la banque.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Question idiote : pourquoi le ferait-elle ? Généralement, on clique sur des liens, des boutons, on ne bidouille pas les URL (personnellement, je ne l'ai jamais fait)
    C'est bien que tu ne l'ais jamais fait (comme moi d'ailleurs), mais malheureusement pas mal de personnes malveillantes essaient de passer par les URL pour mettre à mal une appli.

    Citation Envoyé par _Mac_ Voir le message
    L'achat du second certificat me paraît la meilleure option mais tu vas avoir de gros problèmes de configuration pour faire fonctionner les 2 certificats en même sur le même serveur.
    Peux tu préciser ta pensée ?

    Dans tous les cas c'est sympa de participer à mon post.
    Merci

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Andéa Voir le message
    C'est bien que tu ne l'ais jamais fait (comme moi d'ailleurs), mais malheureusement pas mal de personnes malveillantes essaient de passer par les URL pour mettre à mal une appli.
    Je suis d'accord, mais dans ce cas, ce n'est pas pour acheter qu'ils le font, donc tant pis pour eux si ça ne marche pas

    Citation Envoyé par Andéa Voir le message
    Peux tu préciser ta pensée ?
    Utiliser plusieurs certificats SSL sur un seul et même serveur Apache c'est extrêmement délicat. Il faut en théorie passer par des ports différents, donc les URL ne sont plus forcément "propres" (https://site.com:2345/... par exemple), ce qui ne plaît généralement pas et pour le coup, ça ne résout pas le problème du "je retire les www et je vois ce que ça donne".

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Je suis d'accord, mais dans ce cas, ce n'est pas pour acheter qu'ils le font, donc tant pis pour eux si ça ne marche pas
    C'est sur t'as raison.

    Citation Envoyé par _Mac_ Voir le message
    Utiliser plusieurs certificats SSL sur un seul et même serveur Apache c'est extrêmement délicat. Il faut en théorie passer par des ports différents, donc les URL ne sont plus forcément "propres" (https://site.com:2345/... par exemple), ce qui ne plaît généralement pas et pour le coup, ça ne résout pas le problème du "je retire les www et je vois ce que ça donne".
    Ok c'est bon à noter. Merci pour ces post.
    A plus.

    Pour ma part je vais continuer le développement de l'appli.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [URL rewriting] Redirection d'un répertoire virtuel
    Par frakosun dans le forum Apache
    Réponses: 2
    Dernier message: 25/02/2010, 19h59
  2. Réponses: 1
    Dernier message: 22/02/2010, 12h58
  3. Réponses: 4
    Dernier message: 08/07/2008, 11h43
  4. [URL Rewriting] Ajout d'un répertoire
    Par anti-pixel dans le forum Apache
    Réponses: 5
    Dernier message: 27/04/2008, 14h16
  5. Réponses: 6
    Dernier message: 21/02/2008, 20h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo