Skip to content

Configurer l'auth HTTP (Alpine Linux)

Pour configurer l’authentification HTTP de base sur Nginx sous Alpine Linux, voici les étapes à suivre :

Étape 1 : Installer htpasswd

Sur Alpine Linux, le paquet apache2-utils fournit l’outil htpasswd. Installe-le avec apk :

Terminal window
sudo apk add apache2-utils

Étape 2 : Créer un fichier de mot de passe

Utilise htpasswd pour créer un fichier de mot de passe. Remplace username par le nom d’utilisateur que tu veux utiliser :

Terminal window
sudo htpasswd -c /etc/nginx/.htpasswd username

Il te demandera de saisir et confirmer le mot de passe pour l’utilisateur.

Étape 3 : Configurer Nginx pour utiliser l’authentification HTTP de base

Modifie la configuration de ton site Nginx pour inclure l’authentification HTTP de base. Par exemple, si la configuration de ton site se trouve dans /etc/nginx/conf.d/default.conf, ouvre ce fichier avec un éditeur de texte :

Terminal window
sudo nano /etc/nginx/conf.d/default.conf

Ajoute les lignes suivantes dans le bloc server ou location approprié pour ton site :

server {
listen 80;
server_name example.com;
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
# Autres configurations de ton site
proxy_pass http://localhost:3000; # Par exemple, si tu utilises un proxy vers une application Node.js
}
}

Étape 4 : Redémarrer Nginx

Après avoir modifié la configuration, redémarre Nginx pour appliquer les changements :

Terminal window
sudo rc-service nginx restart

Maintenant, lorsque tu accèdes à ton site, il te sera demandé de saisir un nom d’utilisateur et un mot de passe avant de pouvoir accéder au contenu.

Exemple complet de configuration Nginx

Voici un exemple complet de configuration Nginx avec authentification HTTP de base :

server {
listen 80;
server_name example.com;
location / {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Optionnel : Rediriger HTTP vers HTTPS
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

N’oublie pas de remplacer example.com par ton propre nom de domaine et de configurer les chemins corrects pour les certificats SSL si tu utilises HTTPS.