Vous pouvez définir et modifier un mot de passe de contrôle d’accès aux répertoires de votre hébergement à l’aide d'un fichier .htaccess.
Utilisez un fichier .htpasswd pour mettre en place un identifiant et un mot de passe.
Protéger un répertoire par un mot de passe
Il s’agit d’une des applications les plus utiles du fichier .htaccess car elle permet de définir de façon sûre (à l’aide d’un login et d’un mot de passe) les droits d’accès à des fichiers par/pour certains utilisateurs.
La syntaxe est la suivante :
AuthUserFile {emplacement du fichier de mot de passe}
AuthGroupFile {emplacement du fichier de groupe}
AuthName "Accès protégé"
AuthType Basic
Require valid-user
La commande AuthUserFile permet de définir l’emplacement du fichier contenant les logins et les mots de passe des utilisateurs autorisés à accéder à une ressource donnée.
La commande AuthGroupFile permet de définir l’emplacement du fichier contenant les groupes d’utilisateurs autorisés à s’identifier. Il est possible d’outrepasser cette déclaration en déclarant le fichier suivant : /dev/null.
Voici un exemple de fichier .htaccess :
ErrorDocument 403 https://developers.google.com/open-source/gci/help/403
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic
Require valid-user
Le fichier de mot de passe est un fichier texte devant contenir sur chacune des ses lignes le nom de chaque utilisateur suivi des deux points (:), puis du mot de passe chiffré (solution recommandée) ou en clair.
Voici un exemple de fichier de mot de passe non chiffré (ici .FichierDeMotDePasse)
Hector_user1:Tata503
Robert_user2:Thor(38)
Charles_user3:Joe_le-Taxi]
Voici le même fichier contenant des mots de passe chiffrés :
Hector_user1:$apr1$Si0.....$teyL5Y7BR4cHj0sX309Jj0
Robert_user2:$apr1$TD1.....$sfPTHjoufoNsda4HsD1oL0
Charles_user3:$apr1$zF1.....$wYKqRu2aVYlAEQnxVkly8.
.FichierDeMotDePasse est un simple fichier texte contenant les noms des utilisateurs suivis d’un : puis du mot de passe crypté (ou non) de cet utilisateur. Ce fichier de mot de passe ne devrait pas être mis dans un répertoire virtuel (mais comment faire autrement si l’on ne possède pas de serveur Web et que notre site est hébergé par un tiers ?). Il faut de plus prendre la précaution de mélanger des majuscules, des minuscules, des chiffres et des symboles dans le nom du fichier…
Chiffrer les mots de passe
Apache fournit un outil permettant de générer facilement des mots de passe chiffrés (aussi bien sous Windows que sous Unix), il s’agit de l’utilitaire htpasswd accessible dans le sous-répertoire bin d’Apache.
La syntaxe de cet utilitaire est la suivante :
- Pour créer un nouveau fichier de mots de passe :
htpasswd -c {chemin du fichier de mot de passe} utilisateur
- Pour ajouter un nouvel utilisateur/mot de passe à un fichier existant :
htpasswd {chemin du fichier de mot de passe} utilisateur
Le mot de passe sera demandé en ligne de commande avec une confirmation.
Voici un exemple :
htpasswd -c /www/secure/.htpasswd Hector_user1
Voici un petit utilitaire vous permettant de chiffrer vos mots de passe en ligne :
En savoir plus sur le fichier .htaccess et sa gestion : Tutoriel du serveur HTTP Apache : fichiers .htaccess