N-PN White-Hat Project
Apache, sous-domaine et HTTPS - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Informatique (https://dev.n-pn.fr/forum/forumdisplay.php?fid=12)
+--- Forum : Réseau (https://dev.n-pn.fr/forum/forumdisplay.php?fid=28)
+--- Sujet : Apache, sous-domaine et HTTPS (/showthread.php?tid=2966)



Apache, sous-domaine et HTTPS - InstinctHack - 03-05-2013

io,

Je suis en train de lutter avec apache, mais j'arrive à rien :/
j'ai un virtual host (myframework.vh) ainsi que plusieurs sous-domaines (www, repo, static, etc...)
tout est insérer dans /etc/hosts.

Je voudrais que les connexions en http soient redirigés en HTTPS et que myframework.vh redirige vers www.myframework.vh
(ça me semble pas trop exotique comme config :') )

voilà ma config qui fonctionne pas xD
Code :
<VirtualHost *:80>
        ServerName myframework.vh
        DocumentRoot /var/www/myframework
        Redirect / https://myframework.vh/
</VirtualHost>

<VirtualHost *:443>
        ServerName myframework.vh
        DocumentRoot /var/www/myframework

        Redirect / https://www.myframework.vh/
        SSLEngine on
        SSLCertificateFile      /etc/apache2/certificate_file/myframework.crt
        SSLCertificateKeyFile   /etc/apache2/certificate_key_file/myframework.key
</VirtualHost>

<VirtualHost *:80>
        ServerName www.myframework.vh
        DocumentRoot /var/www/myframework/www
        Redirect / https://www.myframework.vh/
</VirtualHost>

<VirtualHost *:443>
        ServerName www.myframework.vh
        DocumentRoot /var/www/myframework/www
       <Directory /var/www/myframework/www>
               AllowOverride All
       </Directory>
        SSLEngine on
        SSLCertificateFile      /etc/apache2/certificate_file/myframework.crt
        SSLCertificateKeyFile   /etc/apache2/certificate_key_file/myframework.key
</VirtualHost>
Vous pouvez virer les <VirtualHost *:80> de l'équation, ils changent rien au probleme qui est que la page redirige vers .... elle-meme. O.o

Quelqu'un pour m'aider ?
merci d'avance.

EDIT : ça vient de la directive "Redirect / https://www.myframework.vh/" dans le deuxième vhost
mais je comprend pas pourquoi quand j'accède à https://www.myframework.vh/ cette directive est prise en compte O.o c'est pas le meme serveur name O.o

EDIT 2 : il semblerais que le premier vh en https soit prioritaire sur l'autre

EDIT 3 : putain j'vais peter un cable >_<" c'est ssl qui fout la merde >_<" en http, ça marche niquel :/


RE: Apache, sous-domaine et HTTPS - Sh4dows - 03-05-2013

Pour ton redirect c'est pas plutôt un truc comme ça normalement :
Citation :Redirect un_nombre / http://example.com/
Redirect 301 / http://example.com/

Après j'peux pas t'aider (SSL -_-)
http://wiki.gandi.net/fr/ssl/multiplecertononehostipport
http://www.patdef.fr/Configurer-apache2-pour-faire-du.html


RE: Apache, sous-domaine et HTTPS - notfound - 03-05-2013

khaled a écrit :
Code BASH :

SSLEngine on
SSLCertificateFile      /etc/apache2/certificate_file/myframework.crt
SSLCertificateKeyFile   /etc/apache2/certificate_key_file/myframework.key
 

Ça c'est bon ! Le reste, je vois pas


RE: Apache, sous-domaine et HTTPS - b0fh - 03-05-2013

Alors, l'explication théorique au cas ou ça intéresserait quelqu'un:

Traditionellement, les vhosts name-based n'ont jamais bien marché avec SSL, pour une raison simple: au moment ou le serveur fait la négociation SSL, le client n'a pas encore envoyé les headers (vu qu'il veut les envoyés chiffrés, a l'intérieur du canal SSL), donc le header Host: n'est pas encore connu du serveur. Par défaut, Apache va donc toujours utiliser le premier vhost SSL et ignorer silencieusement les autres.

Ce problème n'existe pas si tu utilises des vrais vhosts non-name-based, c'est-à-dire avec une IP différente pour chaque vhost.

Une autre solution est d'utiliser l'extension SNI, qui permet d'indiquer le host demandé à l'intérieur du handshake SSL. ça ne marche pas avec les vieux browsers, les browsers récents doivent être configurés pour accepter au moins TLSv1.1, et ça ne marche que si apache a été compilé avec gnutls, ou, s'il a été compilé avec openssl, qu'openssl lui même ait été compilé avec SNI.

Tu peux savoir si ton Apache supporte SNI en lisant les logs, si tu y vois un warning concernant la RFC4366 c'est qu'il supporte SNI, et si tu vois un message qui t'engeule parce que tu as plusieurs vhosts ssl, c'est qu'il ne supporte pas.