Configuration d'hôtes virtuels sur Apache avec support automatique des sous-domaines, du SSL et de l'authentification

Jean Baptiste FAVRE

janvier 2010

Introduction

UPDATE : ce document a été mis à jour. Vous pouvez (et devriez) le lire, mais la configuration finale est décrite là: Apache: Configuration d'hôtes virtuels avec support automatique des sous-domaines, du SSL, de l'authentification avec support des Alias./UPDATE

L'installation, la configuration et l'exploitation d'un serveur apache peut devenir chronophage Il faut souvent adapter la configuration lorsque l'on souhaite ajouter un hôte virtuel. Découvrez comment cela peut être automatique. Un vhost à créer ? Un répertoire. Un vhost où l'utilisation du SSL est obligatoire ? Un lien symbolique. Un vhosts où l'authentification est obligatoire ? Encore un lien symbolique.

Compliqué ? Pas tant que ça. Suivez le guide.

Hôtes virtuels, principes

Le serveur web Apache est capable de gérer des hôtes virtuels, c'est-à-dire que l'on peut héberger plusieurs domaines différents sur la même IP. Le choix s'effectue en fonction du contenu de la requète HTTP. Le champ Host détermine l'hôte virtuel qui devra traiter la requète.

Ceci est très facile, sauf lorsque l'on souhaite travailler en SSL. En effet, dans le cas de SSL, la négotiation de la clef de chiffrement intervient avant tout envoi de requète HTTP. Ce qui est logique d'un point de vue confidentialité de l'information pose néanmoins un problème: à moins d'avoir un certificat SSL contenant tous les nom de domaines gérés par le serveur, il devient impossible d'héberger plusieurs noms de domaine sur la même adresse IP. Il existe bien quelques exceptions (on obtient ainsi un certificat "wildcard" pour *.mondomaine.tld), mais celles-ci sont généralement limitées aux sous-domaines d'un domaine particulier (ici mondomaine.tld). Si vous souhaitez ajouter mondomaine.fr au même certificat par exemple, et bien sachez qu'aucun marchand de certificat ne vous le propose.

Vous pouvez bien sûr générer votre propre certificat (c'est ce que j'ai fait), mais vos visiteurs auront alors un avertissement car soit votre certificat est auto-signé, soit, plus rare, vous avez votre propre CA qui n'est évidemment pas intégrée dans les navigateurs.

En attendant, nous partirons du principe que 1 IP = 1 domaine SSL.

Préparation de l'environnement

Naturellement, l'automatisation demande un minimum d'organisation. Personnellement, j'ai choisi l'organisation suivante:

tree /var/www/
mondomaine.tld/
|-- config
|   |-- auth
|   `-- ssl
|-- logs
|   |-- access.log
|   |-- error.log
`-- www
    |-- subdir1
    |-- subdir2
    |-- subdir3
    `-- subdir4

Comme vous l'aurez deviné, le rôle des répertoires est le suivant:

config
Contiendra toute la configuration "magique":
auth
Les liens symboliques vers les sous-domaines (subdir*) nécessitant une authentification.
ssl
Les liens symboliques vers les sous-domaines (subdir*) nécessitant un accès SSL.
logs
Ici, nous aurons les logs d'accès ainsi que les logs d'erreur pour le domaine concerné
www
La racine de l'arborescence web où se trouveront nos pages et scripts éventuels et les sous-domaines (subdir*).

Maintenant que nous avons notre structure de répertoires, prenons quelques instants pour définir comment notre système devra se comporter.

Installation et configuration d'Apache

Installer Apache sous Debian
aptitude install apache

La configuration d'apache ci-dessous est une configuration de tests. Elle ne tiendra certainement pas la charge et ne correspondra vraisemblablement pas à vos besoins. Mais sa simplicité permet de mieux comprendre ce qui se passe.

Configuration d'Apache
ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 1

KeepAlive Off

MaxKeepAliveRequests 0

KeepAliveTimeout 0

StartServers          1
MinSpareServers       1
MaxSpareServers       0
MaxClients            5
MaxRequestsPerChild   0

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

DefaultType text/plain

HostnameLookups Off

LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
ErrorLog /var/log/apache2/error.log
LogLevel warn

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
# Include ports listing
Include /etc/apache2/ports.conf
# Include generic snippets of statements
Include /etc/apache2/conf.d/
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

La directive LogFormat a changé: j'y ai ajouté %V afin d'avoir le champ HTTP Host dans le fichier de log. C'est important car chaque domaine (et tous les sous-domaines associés) n'aura qu'un seul fichier de logs.

Voici la liste des modules Apache activés lors des tests de cette configuration. L'idée générale est de n'activer que les modules nécessaires.

Activer un module
a2enmod nom_du_module
Désactiver un module
a2enmod nom_du_module
Modules activés
ls -l /etc/apache2/mods-enabled/
total 0
lrwxrwxrwx 1 root root 33 oct 28 20:01 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 oct 28 20:01 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root root 26 oct 28 20:01 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root root 26 oct 28 20:01 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root root 27 oct 28 20:01 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 oct 28 20:01 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 30 oct 28 21:08 rewrite.load -> ../mods-available/rewrite.load
lrwxrwxrwx 1 root root 30 oct 28 21:08 ssl.conf -> ../mods-available/ssl.conf

Configuration du domaine mondomaine.com

Passons à la configuration du domaine mondomaine.com. Ajoutez les 2 configurations suivantes dans le fichier /etc/apache2/sites-available/mondomaine.com

Configuration HTTP du domaine mondomaine.com
<VirtualHost *:80>
        ServerName mondomaine.com
        ServerAlias *.mondomaine.com
        ServerAlias *.mondomaine.net
        ServerAlias *.mondomaine.fr
        ServerAlias *.mondomaine.eu
        ServerAlias *.mondomaine.info

        ServerAdmin webmaster@mondomaine.com

        DocumentRoot /var/www/mondomaine.com/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/mondomaine.com/www/>
                Options FollowSymLinks
                AllowOverride none
                Order allow,deny
                allow from all
        </Directory>

########## Log Directives
        ErrorLog /var/www/mondomaine.com/logs/error.log
        CustomLog /var/www/mondomaine.com/logs/access.log vhost_combined
</VirtualHost>

Là encore, j'ai adapté la directive CustomLog afin de lui faire prendre en compte le format défini dans le fichier global.

Configuration HTTPS du domaine mondomaine.com
<VirtualHost *:443>
        ServerName mondomaine.com
        ServerAlias *.mondomaine.com
        ServerAlias *.mondomaine.net
        ServerAlias *.mondomaine.fr
        ServerAlias *.mondomaine.eu
        ServerAlias *.mondomaine.info

        ServerAdmin webmaster@mondomaine.com

        DocumentRoot /var/www/mondomaine.com/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/mondomaine.com/www/>
                Options FollowSymLinks
                AllowOverride none
                Order allow,deny
                allow from all
        </Directory>

########## Log Directives
        ErrorLog /var/www/mondomaine.com/logs/error.log
        CustomLog /var/www/mondomaine.com/logs/access.log vhost_combined

########## SSL Directives
        SSLEngine on
        SSLCertificateFile /var/www/mondomaine.com/config/mondomaine.com.pem
        SSLCertificateKeyFile /var/www/mondomaine.com/config/mondomaine.com.pem
        SSLCACertificateFile /var/www/mondomaine.com/config/ca.crt
</VirtualHost>

Je laisse volontairement de côté la génération du certificat SSL. Ceci fera l'objet d'une autre publication.

Activation du domaine mondomaine.com
a2ensite mondomaine.com
Redémarrage d'Apache
/etc/init.d/apache restart

Cas du vhost par défaut

Selon que vous montez un hébergement mutualisé ou dédié, la solution diffèrera. L'objectif, en tout cas, est de gérer le cas, pas si improbable que cela, où vous recevez une requète à destination d'un domaine que vous n'hébergez pas. Il est enfantin de forger une requète HTTP de toute pièce et vous devez le prendre en compte.

Pour cela, il faut définir un vhost par défaut. Il sera utilisé par défaut, car il sera défini en premier.

Créez un fichier /etc/apache2/site-available/0000-default et ajoutez-y la configuration suivante:

Configuration du vhost par défaut
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
        RewriteEngine on
        RewriteRule ^/(.*) //www.mondomaine.com/$1 [R=301,L]
</VirtualHost>

Ici, je considère que nous sommes sur un serveur dédié. Il est donc envisageable de rediriger tout le traffic vers notre "vrai" domaine. Par exemple, toute requète vers //ip_du_serveur sera traitée par ce vhost et le visiteur redirigé vers //www.mondomaine.com/

Enfin, il faut activer le vhost

Activation du vhost par défaut
a2ensite 0000-default

Règles de comportement

Maintenant que nous avons une configuration fonctionnelle, il est temps de s'intéresser au comportement que nous attendons de notre serveur web.

Nous souhaitons héberger le domaine mondomaine.com.

  1. Nous devons rediriger mondomaine.com vers www.mondomaine.com.
  2. Nous voulons pouvoir obtenir, le plus simplement possible, différents sous-domaines. Par exemple:
    • blog.domaine.com doit être accessible en HTTP ou en SSL. L'authentification est gérée par l'application elle-même.
    • webmail.domaine.com doit être obligatoirement en SSL. L'authentification est gérée par l'application elle-même.
    • protected.domaine.com ne sera accessible qu'après authentification, mais l'accès n'est pas forcé en SSL.
    • maitredumonde.domaine.com ne sera accessible qu'après authentification, mais l'accès est en plus forcé en SSL.
  3. Comme nous avons également loué le domaine mondomaine.fr, il faut que les 2 pointent sur le même espace d'hébergement.

En ce qui concerne les alias de domaines (différentes extensions tld), il est nécessaire de modifier la configuration du vhost en ajoutant les directives ServerAlias. En effet, les domaines n'appazraissant ni en ServerName, ni en ServerAlias seront traités par le vhost par défaut.

Règles de ré-écriture

Maintenant que nous avons défini nos règles de comportement, il est temps de préparer nos rewrite Rules. C'est en effet grâce à cette fonctionnalité d'apache que nous pourrons parvenir à nos fins. Naturellement, nous ne nous arrêtrons pas aux quelques sous-domaines que nous avons identifié. Il faut faire des règles qui puissent être le plus générique possible.

Toute requète au domaine //mondomaine.com est redirigée vers //www.mondomaine.com

Ceci permet d'éviter les duplicate contents et d'optimiser un peu le référencement Google.

Rewrite rules 1
RewriteCond %{HTTP_HOST} ^mondomaine.com
RewriteRule ^/(.*) //www.mondomaine.com/$1 [L,R=301]
Toute requète au domaine //www.mondomaine.com/subdir est redirigée vers //subdir.mondomaine.com

Là encore, il est question d'éviter la duplication de contenu. Il suffit que le répertoire /var/www/mondomaine.com/www/subdir existe.

Rewrite rules 2
RewriteCond %{HTTP_HOST} ^www.mondomaine.com
RewriteCond %{REQUEST_URI} /([^/]+)(.*)
RewriteCond /var/www/mondomaine.com/www/%1 -d
RewriteRule ^.* //%1.mondomaine.com%2 [L,R=301]
Toute requète au domaine //sslsubdir.mondomaine.com est redirigée vers https://sslsubdir.mondomaine.com

Il suffit que le répertoire /var/www/mondomaine.com/www/sslsubdir existe et que le lien symbolique sslsubdir soit détecté dans le répertoire /var/www/mondomaine.com/config/ssl/.

Rewrite rules 3
RewriteCond %{HTTPS} ^off$
RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com$
RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
RewriteCond /var/www/mondomaine.com/www/%1 -d
RewriteCond /var/www/mondomaine.com/config/ssl/%1 -l
RewriteRule ^/(.*) https://%1.mondomaine.com/$1 [L,R=301]
Toute requète au domaine //subdir.mondomaine.com est ré-écrite en /var/www/mondomaine.com/www/subdir.

Il suffit que le répertoire /var/www/mondomaine.com/www/subdir existe.

Rewrite rules 5
RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com
RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
RewriteCond /var/www/mondomaine.com/www/%1 -d
RewriteRule ^(.*) /var/www/mondomaine.com/www/%1$1 [L]

Vous aurez remarqué qu'il n'y a pas de règle n°4. C'est normal, il s'agit de la règle qui va gérer l'authentification. Nous l'ajouterons plus tard.

Configuration de l'authentification

Il est temps maintenant de protéger nos répertoires sensibles. Pour cela, il faut tout d'abord activer certains modules:

Activer les module d'authentification
a2enmod auth_basic authn_file authz_default authz_groupfile authz_host authz_user

Il faut ensuite créer le fichier qui contiendra les couples nom d'utilisateur et mot de passe. Pour ce faire, nous allons tout simplement créer le premier utilisateur:

Créer le premier utilisateur authentifié
htpasswd -c /var/www/mondomaine.com/config/htpasswd user1

Ensuite, pour les utilisateurs suivants, il faudra faire:

Créer les utilisateurs suivants
htpasswd /var/www/mondomaine.com/config/htpasswd user1

Notez bien la suppression de l'option -c. Si vous la laissez, htpasswd va commencer par vider le fichier password. Vous perdrez alors vos utilisateurs précédents.

Enfin, il ne nous reste plus qu'à configurer l'authentification d'une part, et à prévoir la nouvelle règle de ré-écriture d'autre part:

Configurer l'authentification
<Directory /var/www/mondomaine.com/config/auth/>
        AuthType Basic
        AuthName "Restricted Files"
        AuthUserFile /var/www/mondomaine.com/config/htpasswd
        Require user user1
</Directory>
Rewrite rules 4
RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com
RewriteCond /var/www/mondomaine.com/www/%1 -d
RewriteCond /var/www/mondomaine.com/config/auth/%1 -l
RewriteRule ^(.*) /var/www/mondomaine.com/config/auth/%1$1 [L]

Order des règles de ré-écriture

Vous aurez compris que l'ordre des règles de ré-écriture est particulièrement important. En effet, il faut d'abord commencer par rediriger les sites SSL, puis gérer l'authentification avant de pouvoir pointer sur le bon fichier.

Un mauvais ordre des règles et voilà votre sous-domaine protected.mondomaine.com exposé. Pas cool. Attention donc si vous décidez de modifier/ajouter des règles de ré-écriture.

Mise en place des sous-domaines

Il est temps maintenant de mettre en place les sous-domaines. Pour mémoire:

blog.domaine.com doit être accessible en HTTP ou en SSL. L'authentification est gérée par l'application elle-même.
Création de l'espace de stockage
mkdir -p /var/www/mondomaine.com/www/blog
webmail.domaine.com doit être obligatoirement en SSL. L'authentification est gérée par l'application elle-même.
Création de l'espace de stockage
mkdir -p /var/www/mondomaine.com/www/webmail
Forcer le SSL
ln -s /var/www/mondomaine.com/www/webmail /var/www/mondomaine.com/config/ssl/
protected.domaine.com ne sera accessible qu'après authentification, mais l'accès n'est pas forcé en SSL.
Création de l'espace de stockage
mkdir -p /var/www/mondomaine.com/www/protected
Forcer l'authentification
ln -s /var/www/mondomaine.com/www/webmail /var/www/mondomaine.com/config/auth/
maitredumonde.domaine.com ne sera accessible qu'après authentification, mais l'accès est en plus forcé en SSL.
Création de l'espace de stockage
mkdir -p /var/www/mondomaine.com/www/maitredumonde
Forcer l'authentification
ln -s /var/www/mondomaine.com/www/maitredumonde /var/www/mondomaine.com/config/auth/
Forcer le SSL
ln -s /var/www/mondomaine.com/www/maitredumonde /var/www/mondomaine.com/config/ssl/

Là encore, pour des questions de simplicités, je laisse volontrairement de côté les problématiques liées, notamment, aux permissions du système de fichier.

Configuration finale du domaine mondomaine.com

Voici à quoi ressemble maintenant notre structure de fichiers:

tree /var/www/
mondomain.com/
|-- config
|   |-- htpasswd
|   |-- auth
|   |   `-- maitredumonde -> ../../www/maitredumonde
|   `-- ssl
|       |-- maitredumonde -> ../../www/maitredumonde
|       `-- webmail -> ../../www/webmail
|-- logs
`-- www
    |-- blog
    |-- maitredumonde
    |-- protected
    `-- webmail
/etc/apache2/sites-available/mondomaine.com
<VirtualHost *:80>
        ServerName mondomaine.com
        ServerAlias *.mondomaine.com
        ServerAlias *.mondomaine.net
        ServerAlias *.mondomaine.fr
        ServerAlias *.mondomaine.eu
        ServerAlias *.mondomaine.info

        ServerAdmin webmaster@mondomaine.com

        DocumentRoot /var/www/mondomaine.com/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/mondomaine.com/www/>
                Options FollowSymLinks
                AllowOverride none
                Order allow,deny
                allow from all
        </Directory>
        <Directory /var/www/mondomaine.com/config/auth/>
                AuthType Basic
                AuthName "Restricted Files"
                AuthUserFile /var/www/mondomaine.com/config/htpasswd
                Require user user1
        </Directory>

########## Log Directives
        ErrorLog /var/www/mondomaine.com/logs/error.log
        CustomLog /var/www/mondomaine.com/logs/access.log vhost_combined

########## Rewrite rules ##########
        RewriteEngine on

    ########## Rewrite rules 1 ##########
        RewriteCond %{HTTP_HOST} ^mondomaine.com
        RewriteRule ^/(.*) //www.mondomaine.com/$1 [L,R=301]

    ########## Rewrite rules 2 ##########
        RewriteCond %{HTTP_HOST} ^www.mondomaine.com
        RewriteCond %{REQUEST_URI} /([^/]+)(.*)
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteRule ^.* //%1.mondomaine.com%2 [L,R=301]

    ########## Rewrite rules 3 ##########
	RewriteCond %{HTTPS} ^off$
        RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com$
        RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteCond /var/www/mondomaine.com/config/ssl/%1 -l
        RewriteRule ^/(.*) https://%1.mondomaine.com/$1 [L,R=301]

    ########## Rewrite rules 4 ##########
        RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteCond /var/www/mondomaine.com/config/auth/%1 -l
        RewriteRule ^(.*) /var/www/mondomaine.com/config/auth/%1$1 [L]

    ########## Rewrite rules 5 ##########
        RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com
        RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteRule ^(.*) /var/www/mondomaine.com/www/%1$1 [L]


</VirtualHost>

<VirtualHost *:443>
        ServerName mondomaine.com
        ServerAlias *.mondomaine.com
        ServerAlias *.mondomaine.net
        ServerAlias *.mondomaine.fr
        ServerAlias *.mondomaine.eu
        ServerAlias *.mondomaine.info

        ServerAdmin webmaster@mondomaine.com

        DocumentRoot /var/www/mondomaine.com/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/mondomaine.com/www/>
                Options FollowSymLinks
                AllowOverride none
                Order allow,deny
                allow from all
        </Directory>
        <Directory /var/www/mondomaine.com/config/auth/>
                AuthType Basic
                AuthName "Restricted Files"
                AuthUserFile /var/www/mondomaine.com/config/htpasswd
                Require user user1
        </Directory>

########## Log Directives
        ErrorLog /var/www/mondomaine.com/logs/error.log
        CustomLog /var/www/mondomaine.com/logs/access.log vhost_combined

########## SSL Directives
        SSLEngine on
        SSLCertificateFile /var/www/mondomaine.com/config/mondomaine.com.pem
        SSLCertificateKeyFile /var/www/mondomaine.com/config/mondomaine.com.pem
        SSLCACertificateFile /var/www/mondomaine.com/config/ca.crt

########## Rewrite rules ##########
        RewriteEngine on

    ########## Rewrite rules 1 ##########
        RewriteCond %{HTTP_HOST} ^mondomaine.com
        RewriteRule ^/(.*) //www.mondomaine.com/$1 [L,R=301]

    ########## Rewrite rules 2 ##########
        RewriteCond %{HTTP_HOST} ^www.mondomaine.com
        RewriteCond %{REQUEST_URI} /([^/]+)(.*)
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteRule ^.* //%1.mondomaine.com%2 [L]

    ########## Rewrite rules 3 ##########
	RewriteCond %{HTTPS} ^off$
        RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com$
        RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteCond /var/www/mondomaine.com/config/ssl/%1 -l
        RewriteRule ^/(.*) https://%1.mondomaine.com/$1 [L,R=301]

    ########## Rewrite rules 4 ##########
        RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteCond /var/www/mondomaine.com/config/auth/%1 -l
        RewriteRule ^(.*) /var/www/mondomaine.com/config/auth/%1$1 [L]

    ########## Rewrite rules 5 ##########
        RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.com
        RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
        RewriteCond /var/www/mondomaine.com/www/%1 -d
        RewriteRule ^(.*) /var/www/mondomaine.com/www/%1$1 [L]

</VirtualHost>


Conclusion

Bien entendu, ce système n'est pas "ultime". Par exemple, vous devrez redémarrer Apache à chaque fois que vous voudrez ajouter un domaine. Dans le même esprit, vous devrez modifier les règles de ré-écriture à 2 endroits différents à chaque fois. Vous pouvez toutefois condenser ces règles dans un fichier particulier et l'inclure dans la déclaration de vos vhosts.

Mais ceci ouvre des perspectives intéressantes, que je vous laisse creuser. Par exemple: est-il possible de mixer ce type de configuration avec l'utilisation des fonctionnalités de mass hosting d'Apache ?

UPDATE : ce document a été mis à jour. Vous pouvez (et devriez) le lire, mais la configuration finale est décrite là: Apache: Configuration d'hôtes virtuels avec support automatique des sous-domaines, du SSL, de l'authentification avec support des Alias./UPDATE

Format

Ce document est disponible aux formats suivants:

À propos de Jean Baptiste FAVRE

Je suis responsable d'exploitation dans le domaine de l'hébergement. Je travaille, entre autres, sur la virtualisation et l'amélioration des performances web. De temps en temps, j'arrive à décrocher de mon clavier pour lire un bon bouquin en écoutant de la musique.

License

Creative Commons License Cette publication est publiée sous contrat Creative Common by-nc-sa

Valid XHTML 1.0 Strict |  Valid CSS |  contrat Creative Common by-nc-sa

Table des matières

  1. Introduction
  2. Hôtes virtuels, principes
  3. Préparation de l'environnement
  4. Installation et configuration d'Apache
  5. Configuration du domaine mondomaine.com
  6. Cas du vhost par défaut
  7. Règles de comportement
  8. Règles de ré-écriture
  9. Configuration de l'authentification
  10. Ordre des règles de ré-écriture
  11. Mise en place des sous-domaines
  12. Configuration finale du domaine mondomaine.com
  13. Conclusion
  14. Format
  15. À propos ...
  16. License