Pour protéger un répertoire avec un mot de passe en utilisant l’authentification de base, vous pouvez configurer votre serveur web pour restreindre l’accès à ce répertoire. Cet exemple utilise le serveur Apache, l’un des serveurs web populaires qui prend en charge cette fonctionnalité. Voici une étape par étape sur la manière de configurer l’authentification de base pour un répertoire spécifique.
Le fichier .htpasswd contiendra les noms d’utilisateurs et les mots de passe cryptés. Utilisez la commande `htpasswd` pour créer ce fichier.
```
htpasswd -c /chemin/vers/.htpasswd utilisateur1
```
La commande ci-dessus crée un fichier nommé `.htpasswd` dans le répertoire spécifié et ajoute `utilisateur1` avec le mot de passe que vous devrez entrer lors de l’invite. Si vous souhaitez ajouter d’autres utilisateurs, vous n’utiliserez pas le drapeau `-c` car il crée un nouveau fichier à chaque fois :
```
htpasswd /chemin/vers/.htpasswd utilisateur2
```
Ensuite, créez ou modifiez le fichier `.htaccess` dans le répertoire que vous souhaitez protéger. Ajoutez-y les lignes suivantes :
```
AuthType Basic
AuthName “Zone sécurisée“
AuthUserFile /chemin/vers/.htpasswd
Require valid-user
```
Voici une explication de chaque directive :
- AuthType Basic : spécifie que l’authentification de base est utilisée.
- AuthName : affiche un message ou un nom pour l’authentification. Ce nom apparaîtra dans la boîte de dialogue d’authentification.
- AuthUserFile : indique le chemin complet vers le fichier `.htpasswd`.
- Require valid-user : autorise l’accès à toute personne ayant une combinaison utilisateur/mot de passe valide.
Assurez-vous que votre serveur Apache permet l’utilisation de fichiers `.htaccess`. Dans le fichier de configuration principale d’Apache (`httpd.conf` ou `apache2.conf`), vérifiez que la directive `AllowOverride` est définie sur `All` pour le répertoire où vous souhaitez permettre les modifications via `.htaccess`.
```
```
Après avoir effectué ces modifications, redémarrez votre serveur Apache pour appliquer les modifications :
```
sudo systemctl restart apache2
```
ou
```
sudo service apache2 restart
```
Imaginons que vous avez un répertoire nommé `protege` dans `/var/www/html`. Vous voudriez le protéger avec un mot de passe.
- Créez un fichier `.htpasswd` :
```
htpasswd -c /etc/apache2/.htpasswd utilisateur1
```
- Ajoutez-le au `.htaccess` du répertoire `protege` :
```
AuthType Basic
AuthName “Zone sécurisée“
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
```
- Vérifiez dans `httpd.conf` ou `apache2.conf` que le chemin vers le répertoire a `AllowOverride All` :
```
```
- Redémarrez Apache :
```
sudo systemctl restart apache2
```