Apache2 cohabitation Virtuals Hosts http et https


Index de la page

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)

HAUT

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)

HAUT

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

HAUT

Génération des certificats :

  • Aller dans le répertoire /etc/apache2
  • Créer le répertoire ssl (mkdir ssl)
  • Se positionner dans ce nouveau répertoire (cd ssl)
    Cette génération s'effectue en 5 étapes :
  • Passer la commande : openssl req -new > nom_certificat.csr
  • Passer la commande : openssl rsa -in privkey.pem -out nom_certificat.key
  • Passer la commande : openssl x509 -in nom_certificat.csr -out nom_certificat.cert -req -signkey nom_certificat.key -days 365
  • Passer la commande : chmod 400 nom_certificat.key
  • Puis au bon endroit dans la config d'Apache (fichier httpd.conf pour apache-ssl) modifier :
    • SSLEngine on
    • SSLCertificateFile /chemin/du/certificat/nom_certificat.cert
    • SSLCertificateKeyFile /chemin/du/certificat/nom_certificat.key

HAUT


navigation : Home Page >> Debian >> Vous êtes ici
La page a été visitée 328 fois
Auteur : wormcs