Activer le protocole HTTPS avec Apache 2 sur Debian
Ce guide facilite l'activation de HTTPS sur Debian.
Ce guide est testé sur:
- Debian 8.0 Jessie
- Ubuntu 17.10 Artful Aardvark
Prérequis
Ce guide nécessite
- Un serveur HTTP Apache 2, comme décrit par Installer Apache 2 sur Debian.
Ce guide recommande:
Paramètres
Renseignez l'adresse IP de la connexion HTTPS (_default_ est une constante Apache 2 valide):
sslIp="_default_"
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Configurez le serveur pour écouter sur le port 443:
if [ -z "$(command grep 'Listen.*443' '/etc/apache2/ports.conf')" ]; then ${cmdProxy} tee -a '/etc/apache2/ports.conf' \
<<< "# Listen on the HTTPS port if the needed module is available. <IfModule mod_ssl.c> Listen 443 </IfModule>" fi
Activez les hôtes virtuels pour l'interface réseau:
if [[ -z "$(command grep "NameVirtualHost.*${sslIp}:443" '/etc/apache2/ports.conf')" \
&& "${sslIp}" != "_default_" ]]; then ${cmdProxy} sed -i -e "/Listen[\t ]*443/a\\ NameVirtualHost ${sslIp}:443" '/etc/apache2/ports.conf' fi
Activez le module SSL:
${cmdProxy} a2enmod ssl
Rechargez la configuration du serveur:
${cmdProxy} service apache2 force-reload
Utilisation
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.
Créez un hôte virtuel HTTPS avec a2tools en utilisant l'option --ssl=auto pour générer un certificat SSL Let's Encrypt:
# command a2tools --ssl='auto' 'www.domain.com' '/opt/www.domain.com'
Créez un hôte virtuel HTTPS avec a2tools en utilisant l'option --ssl ayant en argument le nom du certificat SSL créé (en général, le nom de domaine du site):
# command 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:
# command a2tools --ssl='*.domain.com' '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.