Documentation technique : Debian
Documentation basée sur la distribution Debian

> > Rediriger HTTP vers HTTPS (SSL) automatiquement

Rediriger HTTP vers HTTPS (SSL) automatiquement

Pour certains services web reposant sur une identification, il peut être suffisant, si on en a la possibilité, de ne s’y connecter qu’en HTTPS afin de forcer l’accès sécurisé.

Les services type webmail ou owncloud par exemple, nécessitant une identification pour fonctionner devraient, pour des raisons de sécurité n’être accessible que par HTTPS.

Vérifier que la réécriture d’URL est fonctionnelle

Dans un premier temps, il est nécessaire d’avoir le mod_rewrite d’activé. Il y a de grandes chances qu’il le soit déjà, mais on ne sait jamais. Pour s’en assurer, on lance la commande :

  1. sudo a2enmod rewrite

Le retour de la commande confirmera s’il est déjà activé, dans le cas contraire, il faudra redémarrer le serveur Apache avec la commande :

  1. /etc/init.d/apache2 restart

Renvoyer l’ensemble du site vers le protocole HTTPS sécurisé depuis le virtualhost

Renvoyer vers HTTPS est ensuite assez simple, il suffit de modifier le virtualhost en réécrivant toute connexion sur le port standard (80 en général) vers le protocol https.

Cela donnera quelque chose du genre pour le site technique.arscenic.org :

  1. <VirtualHost *:80>
  2. .....
  3. Redirect permanent / https://technique.arscenic.org/
  4. ....
  5. </VirtualHost>

Télécharger

Il faudra ensuite redémarrer le serveur apache via la commande :

  1. /etc/init.d/apache2 restart

Toute demande de connexion via http sera maintenant redirigée vers https

Depuis le htaccess

Imaginons que le site soit un webmail et que le code de ce site puisse être utilisé depuis plusieurs urls / domaines différents (un webmail par exemple).

Il faut donc rediriger chaque domaine vers sa version https. Pour ce faire on peut modifier ou créer un fichier htaccess à la racine du code du site et y ajouter les lignes suivantes :

  1. RewriteEngine On
  2. RewriteCond %{HTTPS} off
  3. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Télécharger

La première ligne active la réécriture d’URLs.

La seconde est une condition, elle vérifie que l’on ne se connecte pas déjà via HTTPS.

La troisième réécrit l’URL si la condition est validée et renvoie vers la même url sur le protocole HTTPS.

Articles complémentaires

  • Auteur :
  • Publié le :
  • Mis à jour : 12/09/16

Aucun commentaire


Qui êtes-vous ?
  • [Se connecter]
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.