Comment protéger un site ou un répertoire avec un fichier .htpasswd et .htaccess ?

Besoin d’ajouter un système d’authentification via .htaccess, par exemple, sur la zone d’admin d’un site Internet ou un autre répertoire ? Ce tutoriel est fait pour vous !

Pour protéger l’accès à une zone sensible de votre site (ex : un panneau d’administration) ; ou pour empêcher les robots des moteurs de recherche d’indexer une version de votre site en cours de développement ; ou pour toute autre raison de sécurité, vous pouvez avoir besoin de configurer ce qu’on appel un “Htpassword” (ht = hypertext, passwd = password).

Grâce aux configurations des fichiers .htaccess et .htpasswd, lors de l’accès à une URL ou un répertoire complet, une fenêtre d’identification sera présentée à l’utilisateur.

Comment générer une protection de répertoire en générant un htpassword grâce à un htpasswd generator ?
Fenêtre d’authentification présentée lorsqu’on tente d’accéder à un dossier protégé par un fichier .htpasswd, lié au répertoire grâce à un fichier .htaccess. Pour aller plus loin, il est nécessaire de pouvoir renseigner le Nom d’Utilisateur et le Mot de passe.

Comment créer ou générer des fichiers .htaccess et .htpasswd ?

Tout d’abord, avant de créer le fichier .htpasswd qui servira à stocker notre Nom d’utilisateur, ainsi qu’une version cryptée de notre Mot de passe, intéressons nous au code qui devra être intégré dans le fichier .htaccess. Il servira de lien entre le dossier qu’on souhaite protéger et le fichier .htpasswd que nous allons stocker quelque part sur le serveur, et qui contiendra nos identifiants cryptés.

Comment créer un fichier .htaccess manuellement, pour protéger un site ou un dossier ?

Comment nous le verrons plus loin, il existe de nombreux outils en ligne pour générer automatiquement des fichiers .htpasswd ou .htaccess. Cependant, il est beaucoup plus sécurisé pour vous de comprendre la mécanique des fichiers .htpasswd et .htaccess, afin de pouvoir les créer manuellement.

Configuration d’un fichier .htaccess pour la protection d’un dossier avec .htpasswd

Dans notre exemple, l’URL protégée est www.easyhoster.com/protected-directory/. C’est-à-dire, sur le serveur EasyHoster, le dossier /home/easyhoster/public_html/protected-directory/.

Dans cet exemple, le fichier .htpasswd sera stocké dans le même répertoire, mais nous allons voir que celui-ci peut être déplacé vers un emplacement plus discret, pour encore plus de sécurité 🙂

Voici un exemple de code à ajouter à votre fichier .htaccess :

ErrorDocument 401 "Authorisation Required"
AuthType Basic
AuthName "Veuillez entrer vos identifiants"
AuthUserFile /home/easyhoster/public_html/protected-directory/.htpasswd
Require user username
Satisfy All
  • ErrorDocument 401 « Authorisation Required » : sans cette ligne, sur un Hébergement cPanel, vous risquez d’être confronté à des erreurs 401 ou des erreurs 404 en tentant d’accéder à votre dossier protégé.
  • AuthType Basic : cela signifie que les données ne sont pas cryptées lors de la communication du mot de passe hashé. C’est la configuration la plus simple, mais rassurez-vous, votre mot de passe ne sera jamais interceptable “en clair”.
  • AuthName : cela vous permet d’afficher une petite phrase, par exemple, pour vous rappeler un indice de password que seul vous pourrez comprendre (exemple : “Voir carnet dans la table de nuit”).
  • AuthUserFile : très important, il s’agit du chemin complet où est stocké votre fichier sur le serveur. Vous pouvez retrouver ce chemin grâce au File Manager de cPanel, ou grâce aux commandes ls et pwd depuis votre Terminal ou votre Shell SSH.
    Mesure de sécurité supplémentaire, placez votre .htpasswd dans un répertoire secret : le répertoire peut être encore mieux protégé en brouillant les pistes, en hébergeant le fichier .htpasswd dans un autre répertoire plus secret, par exemple /home/easyhoster/secret123/.htpasswd. Il n’est pas obligatoire de stocker le fichier .htpasswd dans le répertoire protégé. Il peut être hébergé en dehors de celui-ci n’importe où dans votre compte d’Hébergement Web.
    N’hésitez pas à consulter notre support technique pour toute aide à ce sujet.
  • Require user VotreNomdUtilisateur : remplacez username ou VotreNomdUtilisateur par l’identifiant que vous souhaitez configurer dans votre fichier htpasswd.
  • Satisfy All : facultatif, cela représente néanmoins une couche de sécurité supplémentaire dans le cas où le serveur serait configuré sur Satisfy Any.

Configuration d’un fichier .htpassword contenant l’identifiant et le mot de passe crypté grâce à MD5

Sans entrer dans trop de technique, le terme “Crypté” n’est pas tout à fait adéquat, car MD5 est une fonction de hachage cryptographique. C’est-à-dire qu’en aucun cas, le mot de passe ne peut être “Décrypté”.

Pour générer un fichier .htpassword de manière 100% sécurisée et autonome, nous allons le créer grâce à notre Terminal cPanel. Connectez-vous à cPanel > section Terminal.

Ensuite, nous entrons cette commande htpasswd -cm adaptée à l’exemple ci-dessus (à adapter selon les besoins) :

htpasswd -cm /home/easyhoster/public_html/protected-directory/.htpasswd  username

Les paramètres -cm signifient -c : Créer/Écraser un fichier .htpasswd, -m : Utiliser un hash MD5.

Créer un fichier htpasswd en ligne de commande (recommandé)
Pour rejoindre ce Terminal, connectez-vous à votre compte cPanel. N’oubliez pas d’adapter le chemin d’accès au fichier .htpasswd en fonction de la structure de votre propre compte d’hébergement et remplacez “username” par l’identifiant que vous souhaitez renseigner lors de la connexion à votre site.

Comment résoudre l’erreur bash: htpasswd: command not found ?

Dans certains environnements d’hébergement web et par mesure de sécurité, quelques lignes de commandes Linux peuvent ne pas être disponibles !

Comme souvent, il existe plusieurs méthodes d’obtenir le résultat souhaité, à savoir, « Générer un Gash htpasswd ».

Vous pouvez notamment générer un hash sécurisé via un Générateur de htpasswd en ligne (voir ci-dessous ↓)

À quoi ressemble un fichier htpasswd ?

Vérifions que notre htpasswd a correctement été créé. Pour cela, nous utilisons le File Manager de cPanel.

File Manager de l'Hébergement cPanel, pour la vérification du htpasswd.
Pour pouvoir afficher les fichiers .htpasswd et .htaccess, vérifiez que vous autorisez l’affichage des fichiers .dotfiles > bouton Settings dans le coin supérieur-droit.
Éditeur de fichiers code source File Manager de l'hébergement cPanel
Le File Manager de cPanel dispose d’un éditeur de fichiers (code source), très pratique pour effectuer notre vérification sans devoir télécharger le fichier sur notre ordinateur.

Comment créer automatiquement un fichier .htpasswd grâce à un .htaccess & .htpasswd “generator” en ligne ?

Si la création d’un fichier .htpassword en lignes de commande Terminal vous semble trop complexe, ou si la commande n’est actuellement pas disponible chez votre hébergeur web, sachez qu’il existe de nombreux outils en ligne indépendants qui se proposent de générer pour vous ce fameux fichier .htpasswd.

Voici quelques uns de ces outils “générateur de htpasswd” :

Générateur de fichier htpasswd Gratuit / en ligne (password hash generator, htpasswd apache function).
Exemple de « Htpassword Generator »

Même si ces outils semblent tout à fait légitimes, le principe de précaution nous encourage à rester très prudents lorsqu’on génère un fichier .htpasswd grâce à ce type d’outils.

Voici quelques règles à respecter lorsqu’on utilise un générateur de mot de passe htpasswd :

  1. Pour chaque site Web que vous protégez, utilisez des mots de passe différents / uniques et aléatoire (composés de suites de caractères spéciaux, des lettres et des chiffres sans signification particulière)
  2. Ne divulguez jamais quelle est l’URL secrète que vous souhaitez protéger grâce à ce mot de passe
  3. Ne choisissez pas de nom d’utilisateur équivoque laissant par exemple deviner l’adresse de votre site (mauvais exemple de nom d’utilisateur : “easyhoster”, bon exemple : “edouard2020”)

Conclusion sur le .htaccess et le .htpassword

Grâce à la combinaison de ces 2 fichiers correctement configurés, il sera impossible à tout utilisateur de voir le contenu du répertoire protégé, et bien sûr, cela vaut aussi pour les moteurs de recherche.

Le .htpasswd est donc une solution idéale pour créer une couche de protection supplémentaire pour une zone d’administration telle que wp-login.php sous WordPress ; ou même interdire l’accès à un site Web en cours de développement afin d’éviter son indexation “dupliquée” sur les moteurs de recherche.

Besoin d’assistance avec vos fichiers .htaccess et .htpasswd ?

Soyons honnêtes, la configuration de fichiers .htaccess est assez complexe. Cela n’est pas forcément à la portée de tous, en particulier pour les utilisateurs n’ayant pas suivi de formation en informatique.

C’est pourquoi EasyHoster offre un niveau de support technique supérieur à celui d’autres hébergeurs plus classiques !

Pour pouvoir bénéficier de conseils et d’une aide supplémentaire pour la création d’un fichier htpassword, et la configuration de votre fichier htaccess, il vous suffit d’être hébergé chez EasyHoster et d’ouvrir un ticket auprès de notre support technique.

Sommaire de ce billet
Besoin d'aide ?

Le site WordPress speed.easyhoster.net ➚ permet de tester le potentiel des solutions d'Hébergement Web EasyHoster.