2008-08-12 7 views
7

Quel est le meilleur moyen de réécrire de façon transparente une URL sur une connexion SSL avec Apache 2.2? Apache 2 ne prend pas nativement en charge plusieurs hôtes virtuels basés sur le nom pour une connexion SSL et j'ai entendu dire que mod_rewrite peut aider à cela. Je voudrais faire quelque chose comme ceci:Utilisation de mod_rewrite pour Mimic SSL Virtual Hosts?

J'ai mis en place le serveur afin que les sites sont accessibles par

https://secure.example.com/dbadmin

mais je voudrais avoir cela comme https://dbadmin.example.com

Comment est-ce que je le configure de sorte que la règle Rewrite réécrive dbadmin.example.com en secure.example.com/dbadmin, mais sans afficher la réécriture sur la barre d'adresse du client (ie le client verra toujours dbadmin.example.com) , partout dans https?

Répondre

3

Configurez un seul VirtualHost pour servir à la fois secure.example.com et dbadmin.example.com (ce qui en fait le seul *: 443 VirtualHost réalise cela). Vous pouvez ensuite utiliser mod_rewrite pour ajuster l'URI pour les demandes de dbadmin.example.com:

<VirtualHost *:443> 
    ServerName secure.example.com 
    ServerAlias dbadmin.example.com 

    RewriteEngine on 
    RewriteCond %{SERVER_NAME} dbadmin.example.com 
    RewriteRule !/dbadmin(.*)$ /dbadmin$1 
</VirtualHost> 

Votre certificat SSL devra être valable pour les deux secure.example.com et dbadmin.example.com. Il peut s'agir d'un certificat générique mentionné par Terry Lorber ou vous pouvez utiliser le champ subjectAltName pour ajouter des noms d'hôte supplémentaires.

Si vous rencontrez des problèmes, commencez par configurer le <VirtualHost *> et vérifiez qu'il fonctionne sans SSL. La connexion SSL et le certificat constituent une couche de complexité distincte que vous pouvez configurer après le fonctionnement de la réécriture d'URI.

0

Il y a Apaches mod_rewrite, ou vous pouvez apache de configuration pour diriger https://dbadmin.example.com à chemin/vers/example.com/dbadmin sur le serveur

<VirtualHost *> 
ServerName subdomain.domain.com 
DocumentRoot /home/httpd/htdocs/subdomain/ 
</VirtualHost> 
2

À moins que votre certificat SSL est le "joker" ou multi-sites genre, alors je ne pense pas que cela fonctionnera. La réécriture s'affichera dans le navigateur et le nom dans la barre d'adresse devra être valide par rapport au certificat, sinon vos utilisateurs verront une erreur de sécurité (qu'ils peuvent toujours accepter et continuer, mais cela ne vous semble pas être le cas)).

Plus here.

Questions connexes