Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Apache 2 / Simplifier l'administration d'un serveur Apache 2 avec a2tools

Simplifier l'administration d'un serveur Apache 2 avec a2tools

Par Pierre-Yves Landuré Dernière modification 27/02/2017 18:03

a2tools est un script créé dans le but de simplifier et d'automatiser l'administration courante d'un serveur Apache 2. Ce guide présente comment le mettre en place et donne quelques exemples d'utilisation.

Ce guide est testé sur:

  • Debian 5.0 Lenny
  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy
  • Debian 8.0 Jessie

Prérequis

Ce guide nécessite:

Ce guide recommande:

Installation

Détectez le proxy de commande (command ou sudo):

cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'

Installez l'outil:

${cmdProxy} wget "https://raw.github.com/biapy/howto.biapy.com/master/apache2/a2tools" \
    --quiet --no-check-certificate --output-document="/usr/local/bin/a2tools"

Rendez-le exécutable:

${cmdProxy} chmod +x "/usr/local/bin/a2tools"

Présentation de a2tools

Le détail des options de l'outil est fourni par:

${cmdProxy} a2tools --help

Hôte virtuel simple

Créez un hôte virtuel servant un dossier:

# sudo a2tools "www.domain.com" "/opt/www.domain.com"

Redirection

Créez un hôte virtuel redirigeant un domaine et tous ses sous-domaines vers un autre site:

# sudo a2tools --template=redirect \
# --alias="*.domain.com" \
# "domain.com" "http://www.domain.com/"

Reverse proxy

Créez un hôte virtuel mettant à disposition un site hébergé sur un autre serveur (en reverse proxy):

# sudo a2tools --template=reverse-proxy "www.domain.com" "http://domain.server.lan/"

Remarque : Sur le serveur "domain.server.lan", un hôte virtuel "www.domain.com" doit être présent. Si le serveur "domain.server.lan" utilise Apache 2, paramétrez-le à l'aide du guide Obtenir l'adresse IP réelle d'un visiteur accédant à un serveur Apache 2 à travers un reverse proxy.

Suppression d'un domaine

Pour retirer tous les hôtes virtuels d'un domaine, utilisez :

# sudo a2tools --remove "www.domain.com

Site sécurisé (HTTPS)

Tout site HTTPS nécessite la création d'un certificat SSL valide adapté à son nom de domaine, comme décrit par Créer un certificat SSL / TLS sur Debian, ou l'installation du client acme.sh pour Let's Encrypt.

Créez un hôte virtuel HTTPS avec l'option --ssl='auto' pour créer automatiquement un certificat Let's Encrypt:

# sudo a2tools --ssl='auto' 'www.domain.com' '/opt/www.domain.com'

Créez un hôte virtuel HTTPS avec l'option --ssl ayant en argument le nom du certificat SSL créé (en général, le nom de domaine du site), si vous disposez d'un certificat SSL existant:

# sudo a2tools --ssl='www.domain.com' 'www.domain.com' '/opt/www.domain.com'

Si le certificat créé est un certificat wildcard valide pour plusieurs sous-domaines, utilisez:

# sudo a2tools --ssl='*.domain.com' 'www.domain.com" '/opt/www.domain.com'

Remarque: Ajouter un argument à l'option --ssl équivaut à appeler la commande avec ces options:

# sudo a2tools --ssl \
# --private-key="/etc/ssl/private/www.domain.com.key" \
# --public-key="/etc/ssl/certificates/www.domain.com.crt" \
# --root-ca="/etc/ssl/roots/www.domain.com-root.ca" \
# --chain-ca="/etc/ssl/chains/www.domain.com.ca" \
#  'www.domain.com' '/opt/www.domain.com'

Une fonctionnalité manquante des navigateurs Internet Explorer 6 à 8 sur Windows XP limite à l'utilisation d'un seul certificat SSL par adresse IP. Pour héberger plusieurs sous-domaines sur un même serveur, l'utilisation de certificats "wildcard" (cad. "*.exemple.com") est recommandée.

Pour héberger plusieurs domaines sur un serveur sans erreurs sur Internet Explorer, utilisez l'option --bind-ip pour spécifier l'adresse IP associée au certificat SSL utilisé. Si vous utilisez un serveur OVH, assignez une IP failover au serveur.