Skip to content

Apache2 cohabitation Virtuals Hosts http et https

SécuritéServerSystèmeweb

Apache2 est un server web complet modulaire, il permet de faire du reverse proxy, du rewriting, du http, https, il représente 50% des servers web sur la toile.
On va voir la configuration des sites webs hébergés par le server (virtual hosts = VirtualHost ) pour faire cohabité des sites webs utilisant le protocole HTTP et le proocole HTTPS, sur une machine Debian.

Pré-requis :

  • connaitre vi ou alors utiliser un éditeur de texte propre par ex :emacs (qui ne rajoute pas de caractère en fin de ligne)
  • Avoir un pc fixe , portable ....
  • Avoir une version de linux Debian avec un server apache2 fonctionnel, avec ou sans modules complémentaires....
  • Avoir comme système d'exploitation linux debian : un kernel 2.4 ou supérieur (cela marche très bien sur Lenny (debian) kernel 2.6.22-3-686)

 

Activation du module ssl

  • Taper la commande : a2enmod ssl (commande Debian)
  • Sinon de manière manuelle :
    • Aller dans le répertoire /etc/apache2/mods-enabled (comande cd)
    • Taper les commandes :

ln -s ../mods-available/ssl.conf

ln -s ../mods-available/ssl.load

  • ajouter dans le fichier /etc/apache2/ports.conf les 3 lignes suivantes pour qu'apache2 écoute sur le port choisi (port par défaut : 443):

<IfModule mod_ssl.c>

Listen 443

</IfModule>

  • recharger ou redémarrer le server apache2 (invoke-rc.d apache2 reload)

 

Configuration des VirtualHosts
Il y a un fichier de configuration par site web (VirtualHost), qui se trouve dans le répertoire : /etc/apache2/sites-available

  • Aller dans le répertoire /etc/apache2/sites-available
  • Créer le fichier de configuration de préférence le nom du site : mon-site

On décide que ce site sera uniquement en https, il faudra donc prévoir le cas ou il y a un accès https et un accès http qui redirigera automatiquement en https. Cela donne :

  • ajouter les lignes :

NameVirtualHost mon-site.com:443
<IfModule mod_ssl.c>
<VirtualHost mon-site.com:443>
NameVirtualHost mon-site.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ nom_certificat.cert.cert
SSLCertificateKeyFile /etc/apache2/ssl/nom_certificat.cert.key
ServerAdmin webmaster@mon-site.com
DocumentRoot /chemin/de/la/racine/du/site
ServerName mon-site.com
CustomLog /var/log/apache2/access-ssl-mon-site.com.log combined
ErrorLog /var/log/apache2/error-ssl-mon-site.com.log
LogLevel debug
</VirtualHost>
</IfModule>

<VirtualHost mon-site.com:80>
NameVirtualHost mon-site.com
ServerAdmin webmaster@mon-site.com
DocumentRoot /chemin/de/la/racine/du/site
ServerName mon-site.com
RedirectMatch permanent / https://mon-site.com
CustomLog /var/log/apache2/access-mon-site.com.log combined
ErrorLog /var/log/apache2/error-mon-site.com.log
LogLevel debug
</VirtualHost>

  • Création du deuxième site pour le protocole HTTP
  • Créer le fichier de configuration de préférence le nom du site : mon-site1
  • ajouter les lignes :

NameVirtualHost mon-site1.com:80
<VirtualHost mon-site1.com:80>
NameVirtualHost mon-site.com
ServerAdmin webmaster@mon-site1.com
DocumentRoot /chemin/de/la/racine/du/site
ServerName mon-site1.com
CustomLog /var/log/apache2/access-mon-site1.com.log combined
ErrorLog /var/log/apache2/error-mon-site1.com.log
LogLevel debug
</VirtualHost>

  • Procéder de cette façon pour vos autres sites

Rétroliens

Pas de rétroliens

Commentaires

Afficher les commentaires en Vue non groupée | Vue groupée

Pas de commentaires

Ajouter un commentaire

Marquer un texte en gras: *mot*, souligner un texte: _mot_.
Les smilies standard comme :-) et ;-) sont convertis en images.
Les adresses Email ne sont pas affichées, et sont seulement utilisées pour la communication.
Syntaxe BBCode autorisée
Form options

Les commentaires postés doivent être approuvés avant d'être affichés dans le blog.