7
votes

Redirection de HTTP sur HTTPS avec Apache

J'ai un problème à l'aide de mod_rewrite pour forcer la redirection des requêtes HTTP à HTTPS à l'aide d'Apache 2.2.22 sur Ubuntu Server 12.04.

My / etc / Apache2 / Sites Disponible / Par défaut est comme suit: p>

    http://website:5443/


1 commentaires

Cela semble être le long chemin à faire une chose simple, peut-être que vous en avez une raison. En anyclette, vous devriez consulter mod_proxy: httpd.apache.org/docs/2.0 /mod/mod_proxy.html ainsi que ce relatif de la question: Stackoverflow.com/questions/1162375/apache -Port-proxy .


4 Réponses :


3
votes

Votre problème ici est la demande HTTP initiale: cela ne fonctionnera pas car le serveur ne comprendra pas la réception de la demande du port 443 (comme le suggère le code de réponse).

Si aucun port n'est donné, le protocole http par défaut sur le port 80, https au port 443.

C'est aussi la raison pour laquelle votre redirection locale fonctionne. Je parie si vous accédez à la page via http: // site web / (avec transfert de port correct du port 80), cela fonctionnera également. Notez également que votre virtualhost est défini uniquement pour le port 80 de toute façon, il ne sera donc pas valide pour les demandes envoyées à Site Web: 5443 (ou Site Web: 443 < / code>).

En général, vous auriez besoin d'un serveur acceptant les demandes HTTP et HTTPS sur un seul port. Je ne sais pas que tout serveur populaire prend en charge quelque chose comme ça, parce que (je pense) cela violent essentiellement les spécifications.


2 commentaires

Pas que je suis au courant de. Vous auriez probablement besoin d'un serveur personnalisé acceptant d'une manière ou d'une autre des demandes de redirection de proxy personnalisées en fonction de leur contenu réel.


Eh bien, dans les deux cas, cela ne vaut pas vraiment la peine dans cette situation. Acclamations.



9
votes

Ceci est totalement possible. Ce qui suit redirige tous http à l'URL HTTPS.

<VirtualHost *:80>
    ServerName   mydomainname.com
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>


0 commentaires

0
votes

Si vous voulez rediriger votre site de http: // quelque chose.example.com à https: //anything.example.com ... Créez simplement un fichier d'hébergement dédié .conf sous forme de /etc/httpd/conf.d /dediadiad.conf et autre fichier Conf en tant que virtual.conf ... Les entrées de dédiated.conf sont comme suit ....

Ceci est dédié au serveur Hébergement de fichier Conf pour la redirect à HTTPS ... th [] [1] xxx

Sinon, comme mentionné dans le commentaire ci-dessous, nous pouvons également utiliser Redirect également: xxx


2 commentaires

cela introduirait-il des vulnérabilités de sécurité?


Je suis à peu près sûr que Apache lui-même recommande d'utiliser des redirections et non de réécrire maintenant ??



-1
votes
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

0 commentaires