Le serveur Web Apache est gratuit, open source et l'un des serveurs Web les plus utilisés au monde. Il vous permet de diffuser le contenu sur le Web.
N'importe quel utilisateur peut accéder à votre application via Internet lorsqu'elle est hébergée sur un serveur Web Apache. Dans certains cas, vous devrez peut-être sécuriser votre application afin que seuls les utilisateurs authentifiés puissent accéder à l'application. Vous pouvez protéger votre application au niveau du serveur en utilisant Apache htpasswd. Cet utilitaire vous permet de limiter l'accès à un site Web spécifique à la personne limitée qui ne dispose que des informations de connexion.
Dans ce tutoriel, nous allons vous montrer comment configurer l'authentification par mot de passe avec Apache sur Ubuntu 18.04.
Prérequis
- Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud d'Atlantic.net.
- Un mot de passe root configuré sur votre serveur.
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 - Installer le serveur Web Apache
apt-get install apache2 apache2-utils -y
Une fois installé, démarrez le service Apache et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :
systemctl start apache2 systemctl enable apache2
Maintenant, ouvrez votre navigateur Web et accédez à l'URL http://your-server-ip. Vous devriez voir votre page Web Apache par défaut dans l'écran suivant :
Étape 3 - Créer un fichier de mot de passe Apache
Tout d'abord, vous devrez créer un fichier de mots de passe qu'Apache pourra utiliser pour authentifier les utilisateurs. Vous pouvez créer un fichier .htpasswd caché dans le répertoire /etc/apache2 pour un utilisateur nommé user1 à l'aide de l'utilitaire htpasswd :
htpasswd -c /etc/apache2/.htpasswd user1
Fournissez le mot de passe souhaité, comme indiqué ci-dessous :
New password: Re-type new password: Adding password for user user1
La commande ci-dessus créera un fichier .htpasswd avec les informations d'identification de l'utilisateur. Vous devrez utiliser ces informations d'identification pour accéder à votre site Web.
Étape 4 - Créer un exemple de site Web
Dans cette section, nous allons créer un exemple de structure de répertoires et de fichier index.html à des fins de test.
Tout d'abord, créez un répertoire pour votre site Web avec la commande suivante :
mkdir /var/www/html/example.com
Ensuite, créez un fichier index.html dans votre répertoire Web avec la commande suivante :
nano /var/www/html/example.com/index.html
Ajoutez le contenu suivant :
<html> <title>Password Protected Apache Website.</title> <h1>This website is password protected.</h1> </html>
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, changez la propriété de votre répertoire Web en www-data :
chown -R www-data:www-data /var/www/html/example.com
Étape 5 - Configurer l'authentification de base Apache
Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Apache pour votre site Web et définir l'authentification de base.
nano /etc/apache2/sites-available/example.conf
Ajoutez les lignes suivantes :
<VirtualHost *:80> ServerAdmin [email protected] ServerName example.com DocumentRoot /var/www/html/example.com DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html/example.com"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> </VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Une brève explication de chaque directive est spécifiée ci-dessous :
- Administrateur du serveur :Adresse e-mail de l'administrateur du serveur.
- Nom du serveur :Nom de domaine que le serveur utilise pour s'identifier.
- DocumentRoot :Spécifiez le chemin de votre application.
- Index des répertoires :spécifiez une page par défaut à afficher lors de l'accès à un répertoire.
- Type d'authentification :Type d'authentification.
- AuthName :Spécifiez le message à afficher sur la page de mot de passe.
- AuthUserFile :spécifiez l'emplacement du fichier d'informations d'identification de l'utilisateur.
- Exiger :Spécifiez les utilisateurs qui peuvent accéder à cette région du serveur.
Ensuite, vérifiez Apache pour toute erreur de syntaxe avec la commande suivante :
apachectl -t
Vous devriez obtenir le résultat suivant :
Syntax OK
Ensuite, activez le fichier d'hôte virtuel Apache pour votre site Web avec la commande suivante :
a2ensite example.conf
Ensuite, redémarrez le service Apache pour mettre en œuvre les modifications :
systemctl restart apache2
Étape 6 – Vérifier l'authentification par mot de passe Apache
À ce stade, votre site Web est sécurisé avec l'authentification de base Apache.
Pour le vérifier, ouvrez votre navigateur Web et tapez l'URL http://example.com. Il vous sera demandé de fournir un nom d'utilisateur et un mot de passe pour accéder à votre site Web, comme indiqué ci-dessous :
Indiquez votre nom d'utilisateur et votre mot de passe et cliquez sur Connexion bouton. Vous devriez voir la page par défaut de votre site Web dans l'écran suivant :
Conclusion
Dans le guide ci-dessus, nous avons appris à créer un site Web protégé par mot de passe avec Apache sur Ubuntu 18.04. Vous pouvez désormais protéger facilement votre site Web par mot de passe avec Apache - testez-le dès aujourd'hui avec un plan d'hébergement VPS d'Atlantic.Net ! Pour plus d'informations, vous pouvez consulter la documentation officielle d'Apache sur Apache Auth.