Mettre en place une certaine forme d’authentification par mot de passe pour un site Web peut être une partie cruciale du partage de contenu avec des utilisateurs autorisés. Dans un autre article, nous examinons comment faire exactement cela en utilisant quelques règles .htaccess astucieuses. Si vous souhaitez en savoir plus sur la manière de procéder, vous pouvez consulter notre article, qui explique comment protéger par mot de passe des fichiers ou des répertoires avec .htaccess. Cependant, vous vous demandez peut-être comment ces informations d’identification sont validées et où elles sont stockées ? La réponse est avec le fichier .htpasswd, qui sera le point central de cet article.
Qu’est-ce que .htpasswd ?
Un fichier .htpasswd est généralement utilisé lors de la protection d’un fichier, d’un dossier ou d’un site Web entier avec un mot de passe en utilisant l’authentification HTTP et mis en œuvre en utilisant des règles dans un fichier .htaccess. Les informations d’identification de l’utilisateur sont stockées sur des lignes distinctes, chaque ligne contenant un nom d’utilisateur et un mot de passe séparés par deux points ( :). Les noms d’utilisateur sont stockés en texte clair, mais les mots de passe sont stockés dans un format crypté et haché. Ce cryptage est généralement de type MD5, bien que sous Linux il puisse être basé sur la fonction crypt(). Bien qu’il soit possible de nommer le fichier de mots de passe comme vous le souhaitez, cela est fortement déconseillé car Apache est préconfiguré pour utiliser .htpasswd par défaut, et les fichiers point (fichiers qui commencent par « . ») sont généralement des fichiers cachés.
Comment créer un fichier .htpasswd?
Selon votre plateforme, cela peut être réalisé de plusieurs façons différentes. La méthode la plus simple consiste à se rendre sur l’un des différents sites de création de .htpasswd et à suivre leurs instructions simples pour générer les entrées nécessaires à un fichier .htpasswd. Je recommande le générateur proposé par htaccesstools.com car il est très simple et précis : Htpasswd Generator. Si vous êtes comme moi et que vous aimeriez voir comment cela se fait sans utiliser un générateur, restez dans les parages !
D’abord vous devrez avoir un nom d’utilisateur en tête, pour cet exemple j’ai choisi le nom d’utilisateur bob123. Ensuite, vous devrez être connecté à votre serveur via SSH, si vous n’êtes pas certain de la façon d’accéder à votre serveur via SSH, veuillez consulter l’article suivant : Connexion à votre serveur via SSH. Enfin, vous exécuterez la commande suivante, veuillez noter que si vous l’exécutez en tant qu’utilisateur non root, vous devrez utiliser sudo.
htpasswd -c /home/usernamehere/.htpasswd bob123
Vous serez invité à fournir et confirmer un mot de passe pour cet utilisateur. Si vous souhaitez ajouter des utilisateurs supplémentaires, vous pouvez le faire via ce qui suit:
htpasswd /home/usernamehere/.htpasswd newUser2
Si vous deviez vérifier le contenu du fichier .htpasswd, vous devriez voir quelque chose de similaire à ce qui suit.
bob123:$apr1$FaPCZHMe$jYiw5.9UevKx25pBH4AsT/newUser2:$apr1$mrCHcVhc$oNdJeRcWKPk2z8dlzQI0x/
.