Facile !
Il existe plein de façons de faire une redirection HTTP → HTTPS :
Mais pour l'instant, allons au plus simple : la directive Redirect.
(Savoir utiliser mod_proxy ou mod_rewrite reste utile, mais ce sera pour plus tard !)
Avant de parler de redirection, vous devez déjà avoir un site fonctionnel en HTTPS, avec :
Pour rediriger le trafic HTTP vers HTTPS, il suffit de créer un nouvel hôte virtuel (vhost) dédié à la redirection (ou bien d'ajouter le bloc dans votre vhost existant).
Exemple minimal :
<VirtualHost IP:PORTHTTP>
ServerName NOM-DU-SITE
Redirect permanent / https://NOM-DU-SITE:PORTHTTPS/
</VirtualHost>
À adapter selon votre cas :
<VirtualHost 192.168.1.200:80>
ServerName monsite.local
Redirect permanent / https://monsite.local:443/
</VirtualHost>
Si votre site écoute sur 150.0.0.200:8081 :
<VirtualHost 150.0.0.200:8081>
ServerName monsite.local
Redirect permanent / https://monsite.local:8443/
</VirtualHost>
A retenir :
Par défaut, Apache écoute uniquement sur 80 (HTTP) et 443 (HTTPS).
Si vous utilisez d'autres ports (ex. 8081, 8443...), il faut l'indiquer explicitement.
Éditez le fichier :
/etc/apache2/ports.conf
Ajoutez (ou modifiez) les directives Listen :
Listen 8081
Listen 8443
Mieux vaut ajouter des ports plutôt que remplacer les 80/443, pour garder la compatibilité avec les réglages par défaut.
Avant de relancer Apache, testez toujours votre configuration :
apache2ctl configtest
(sous certaines distributions, la commande est apachectl -t)
Puis rechargez le service :
systemctl reload apache2