Skip to main content
CheckTown
Outils Dev

htpasswd Generator: Apache and Nginx Basic Authentication

Publié le 5 min de lecture
Dans cet article

Qu'est-ce que htpasswd ?

Un fichier htpasswd est une base de donnees en fichier plat utilisee par les serveurs web Apache et Nginx pour stocker les noms d'utilisateurs et les mots de passe haches pour l'authentification HTTP Basic. Chaque ligne contient un nom d'utilisateur et un hash de mot de passe separes par deux-points, comme admin:$2y$10$abc... Le fichier offre un moyen simple de proteger les ressources web sans necessiter un systeme d'authentification complet.

L'utilitaire htpasswd faisait initialement partie du projet Apache HTTP Server, mais le format de fichier est devenu un standard de facto supporte par de nombreux serveurs web, proxys inverses et outils de developpement. Les generateurs htpasswd modernes prennent en charge plusieurs algorithmes de hachage, dont bcrypt, SHA-1 et MD5, bcrypt etant le choix recommande pour la securite.

Comment fonctionne la generation htpasswd

Generer une entree htpasswd consiste a hacher un mot de passe en clair avec un algorithme choisi et a le formater avec le nom d'utilisateur. La robustesse du hash resultant depend de l'algorithme et de sa configuration.

  • bcrypt ($2y$) — l'option la plus securisee, utilise un facteur de cout configurable (par defaut 10) qui controle le cout de calcul de chaque hash, rendant les attaques par force brute impraticables
  • SHA-1 ({SHA}) — produit un condensat SHA-1 encode en Base64 prefixe par {SHA}; plus rapide que bcrypt mais nettement plus faible contre les attaques GPU modernes
  • MD5 ($apr1$) — variante MD5 personnalisee d'Apache avec un sel aleatoire ; format herite encore supporte mais non recommande pour les nouveaux deploiements en raison de faiblesses connues

Essayez gratuitement — sans inscription

Generer une entree htpasswd →

Utilisations courantes de htpasswd

L'authentification htpasswd est largement utilisee pour le controle d'acces leger lorsqu'un systeme d'authentification complet serait excessif.

  • Protection des sites de pre-production — restreindre l'acces aux environnements de pre-production pour que seuls les membres de l'equipe et les parties prenantes puissent voir le travail en cours
  • Securite du panneau d'administration — ajouter une couche supplementaire d'authentification devant les panneaux d'administration CMS, les outils de gestion de base de donnees ou les tableaux de bord de surveillance
  • Acces a l'environnement de developpement — proteger les serveurs de developpement locaux ou partages contre les acces non autorises sans configurer OAuth ou LDAP

Foire aux questions

Dois-je utiliser bcrypt, SHA-1 ou MD5 pour htpasswd ?

Utilisez toujours bcrypt lorsque c'est possible. Bcrypt est concu specialement pour le hachage de mots de passe avec un facteur de cout configurable qui le rend resistant aux attaques par force brute. SHA-1 et MD5 sont des fonctions de hachage rapides non concues pour les mots de passe — elles peuvent etre craquees beaucoup plus rapidement que bcrypt. Certaines anciennes versions d'Apache ne supportent pas bcrypt, mais toute installation moderne le fait.

Ou dois-je placer le fichier htpasswd sur mon serveur ?

Stockez le fichier htpasswd en dehors de la racine web pour eviter qu'il soit servi aux visiteurs. Un emplacement courant est /etc/apache2/.htpasswd ou /etc/nginx/.htpasswd. Referencez-le ensuite dans votre configuration serveur avec AuthUserFile (Apache) ou auth_basic_user_file (Nginx). Ne le placez jamais dans un repertoire accessible publiquement.

L'authentification HTTP Basic est-elle suffisamment securisee pour la production ?

L'authentification Basic envoie les identifiants encodes en Base64 (non chiffres) a chaque requete, elle doit donc toujours etre utilisee via HTTPS. Meme avec HTTPS, elle manque de fonctionnalites comme la gestion de sessions, la limitation de debit et le verrouillage de compte. Elle convient aux scenarios a faible risque comme les sites de pre-production ou les outils internes, mais l'authentification utilisateur en production devrait utiliser un systeme d'authentification avec sessions basees sur des jetons.

Outils associés