La mise en place d’un .htaccess permet de nombreuses choses, dans notre cas il permet principalement de protéger l’accès à une ressource pour pouvoir avancer dans le développement de celle-ci. Il permet également de :
- Créer des sections restreintes pour certains utilisateurs
- Protéger un site en cours de développement pour éviter des failles
- Créer des sections accessibles pour une liste d’adresses IP
Il existe évidemment des dizaines et des dizaines de tutos expliquant comment configurer un .htaccess, vous trouverez ici un exemple simple de mise en place sans configuration avancée.
Trêve de prose, passons à la technique et mettons en place ce fichier.
- Création du fichier
- Configuration du fichier
- Configuration Apache2
- Création de compte d’accès
- Test de la configuration
1. Création du fichier
Il faut tout d’abord créer le fichier nommé « .htaccess » à la racine des éléments que vous souhaitez protéger. Pour cela, sous les systèmes Unix, rien de plus simple :
$ touch .htaccess
En ce qui concerne Windows, le système est un peu plus restrictif et il va falloir faire preuve d’imagination. Pour cela, ouvrez Notepad (via le moyen que vous préférez, personnellement « Windows+R » puis « notepad » puis « Entrée« ). Une fois la fenêtre ouverte, faites « Enregistrer sous… » ou « Ctrl+Maj+S » puis enregistrez le fichier comme dans la capture ci-dessous.
Ça y est, nous avons notre fichier prêt à être configuré.
2. Configuration du fichier
Pour la suite des explications, nous allons protéger le dossier secret_door et nous expliciterons une configuration sous Linux (Debian Buster) comme le montre l’arborescence de fichiers ci-dessous.
Comme vous pouvez le voir sur la capture, il faut modifier les droits sur le fichier et appliquer les droits via la commande suivante :
$ chmod 605 .htaccess
Ensuite, ouvrez le fichier et copier/coller la configuration ci-dessous :
AuthUserFile /etc/apache2/.htpasswd
AuthName "Please Enter Password"
AuthType Basic
Require valid-user
Pour expliquer rapidement les 4 lignes ci-dessus :
- La première ligne pour expliciter où se situe le fichier contenant les identifiants et les mots de passe (partie 4)
- La deuxième ligne qui est à modifier à votre guise en fonction du message que vous souhaitez afficher dans le popup
- La troisième ligne précise le système d’authentification
- La dernière ligne permet à plusieurs utilisateurs (qui sont référencés dans le fichier .htpasswd) de pouvoir se connecter
3. Configuration Apache2
Avant de créer un compte pour accéder à notre précieux dossier, il nous faut modifier la configuration Apache2 présente à l’emplacement suivant :
/etc/apache2/apache2.conf
Et rajouter les lignes suivantes à la fin du fichier :
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Le point à modifier selon votre configuration est l’emplacement présent dans la première ligne, il signifie que pour tous les fichiers dans ce dossier (et ce de manière récursive), si un fichier .htaccess est présent, alors ils seront protégés.
4. Création de compte d’accès
Il ne reste plus qu’un compte pour accéder à notre précieux dossier, pour cela nous vous conseillons d’utiliser le site suivant pour générer la paire utilisateur-condensat, il est possible de la générer autrement mais nous cherchons ici la simplicité ☺
Dans l’exemple ci-dessous, nous souhaitons créer un accès pour l’utilisateur « toto » avec le mot de passe « titi« .
Il suffit ensuite de copier la partie surlignée sur l’image ci-dessus dans le fichier .htpasswd, qu’il faut créer bien entendu en suivant le même procédé que pour le fichier .htaccess dans la partie 1.
Par ailleurs, il est fortement conseillé de limiter les droits d’écriture sur ce fichier aux seuls comptes d’administration de la machine.
5. Test de la configuration
Tout est bon, il ne reste plus qu’à tester l’accès et si tout est bon vous tomberez sur la page suivante.
Si vous rencontrez des problèmes, il existe un moyen simple : les précieux logs ♥
Tout d’abord, exécutez la commande ci-dessus pour valider que la configuration est correcte.
$ apache2ctl configtest
Syntax OK
La deuxième ligne est renvoyée quand la syntaxe est bonne (Bien vu Sherlock !)
Ensuite pour les logs Apache2, vous pouvez vous rendre dans le dossier ci-dessous et explorer les logs à la recherche d’erreur.
/var/log/apache2
Merci d’avoir suivi ce premier petit tuto, en espérant que cela vous ait été utile. N’hésitez pas à me communiquer vos ressentis, tips…etc via le formulaire ci-dessous.