Apache et .htaccess
Introduction
Voici une méthode pour sécuriser son site web tournant sous Apache. Il en existe d'autres, mais celle ci est la plus simple à mettre en oeuvre.Configuration d'Apache pour .htaccess
Le fichier de configuration pour Apache :
http.conf, se trouve dans /etc/apache/
. D'origne, il contient les éléments suivants :
<Directory /var/www/>
Options Indexes Includes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Il faut ajouter une instruction
(AllowOverride AuthConfig) pour indiquer que nous voulons protéger les dossiers suivants :Options Indexes Includes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/>
Options Indexes Includes FollowSymlinks MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
AllowOverride AuthConfig demande à Apache de prendre en compte le fichier
.htacess dans le répertoire
/var/www/ et tous ses sous-répertoires.Options Indexes Includes FollowSymlinks MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
Le fichier .htaccess
Avec votre éditeur préféré (vim), vous éditez un fichier
.htaccess dans le répertoire que vous souhaitez protéger. Et voici ce qe vous devez y mettre :
AuthUserFile /var/www/pass/.htpasswd
AuthName "Accès protégé"
AuthType Basic
<Limit GET POST>
Require valid-user
</Limit>
AuthName "Accès protégé"
AuthType Basic
<Limit GET POST>
Require valid-user
</Limit>
On indique que le fichier .htpasswd (qui contient les logins et les mots de pass) se trouve dans /var/www/pass/. Il est préférable de mettre de fichier hors du site lui même.
Sinon on ajoute un fichier .htaccess dans le répertoire où se trouve .htpasswd pour en empêcher l'accés. Dans ce cas là, le fichier .htaccess conitent : deny from all
Création du fichier .htpasswd
Vous devez bien sûr mettre le fichier
.htpasswd dans le répertoire que vous avez indiqué dans
.htaccess. Il se compose toujours comme suit :
login:passwd
Ces mots de passe doivent être cryptés. Vous obtenez le mot de passe crypté au moyen de la commande
htpasswd. Par exemple je souhaite que l'utilisateur toto accede à ma page web avec le mot de passe 'supertoto', je tape la commande :
[root@glop root]# htpasswd -c /var/www/pass/.htpasswd toto
New password:
Re-type new password:
Adding password for user toto
L'option
-c de
htpasswd permet de créer le fichier
.htpasswd avec le premier couple
login:passwd. Si vous souhaité ajouter un deuxième utilisateur, il faut enlever l'option
-c :New password:
Re-type new password:
Adding password for user toto
[root@glop root]# htpasswd /var/www/pass/.htpasswd tutu
New password:
Re-type new password:
Adding password for user tutu
New password:
Re-type new password:
Adding password for user tutu
Voilà, si vous avez des questions contactez moi.
Accueil