Forcer l’utilisation de https pour certaines pages
Nous avons vu précédemment comment sécuriser l’accès à un site web en activant le support de https, nous allons voir maintenant comment forcer l’utilisation d’une page en https.
L’intérêt d’utiliser le protocole https est d’éviter que vos identifiants et mot de passe circulent en clair sur le réseau. C’est bien joli de pouvoir accéder aux pages sécuriser, mais si l’accès aux pages non sécurisées est toujours disponible, le travail n’est qu’a moitié accompli.
La configuration a éffectuer
Le principe utilisé sera de réaliser une redirection à partir du répertoire que l’on désire sécuriser. Pour cela, il existe plusieurs solutions:
- Via .htaccess
- Via la configuration d’apache
La solution que j’ai choisie est de modifier directement la configuration d’apache.
Beaucoup de sites proposent de modifier le fichier httpd.conf, je le déconseille fortement ! il existe un répertoire dédié aux personnalisations d’apache : conf.d, c’est dans le répertoire conf.d qu’il faut créer un fichier avec ce que l’on souhaite modifier.
Cette façon de procéder permettra de s’affranchir de tout risque lors d’une mise à jour d’apache. Le paquet apache écrasera le fichier httpd.conf lors d’une mise à jour, alors que le répertoire conf.d sera lui conservé et de ce fait vous n’auriez rien perdu.
Voici un exemple pour sécuriser l’accès à la page d’administration d’un blog wordpress :
<Directory "/var/www/html/wordpress/wp-admin"> RewriteEngine on RewriteBase /var/www/html/wordpress/wp-admin RewriteCond %{SERVER_PORTS} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/wordpress/wp-admin/ [L,R] </Directory>
Il vous suffit de recopier cette section dans un fichier et de le déposer dans le répertoire /etc/httpd/conf.d/
On vérifiera ensuite que la configuration est correcte,
- soit directement avec apachectl :
$ apachectl configtest Syntax OK
- soit avec la commande service
# service httpd configtest Syntax OK
Il faut bien sur que la syntaxe soit OK avant de procéder à un rechargement de la configuration d’apache.
# service httpd reload