Dans ce tuto, nous allons apprendre à mettre en place une authentification BASIC, puis une authentification Digest
ainsi qu'un site en HTTPS. Le tout, avec Apache2, et bind9 !
Ne perdons pas de temps, commençons de suite :) Nous allons tout d'abord créer un utilisateur, pour cela, nous allons taper cette commande :
htpasswd est la commande qui gèrera le fichier "secret" ou sont stockés les utilisateurs ainsi que leurs mots de passe... cryptés, bien sur. Le "-c" précise à la commande qu'il s'agit de la première utilisation, et donc, ce "-c" pour "-create" va créer le fichier "users" tout en entrant l'utilisateur "toto" que nous avons demandé dans notre commande.
Pour que l'authentification BASIC puisse fonctionner, nous devons activer le service Apache2 qui lui correspond. Pour cela nous allons utiliser la commande "a2enmod" suivi du nom du service. Mais avant cela, plaçons nous dans le dossier où sont stockés tous les services. Ici, en l'occurence :
Le service est activé ! Maintenant, rendez vous dans :
Dans ce dossier, vous devez avoir tout vos sites activés. Pour plus d'infos sur la création des sites, cliquez ici.
Une fois dans ce dossier, faites la commande suivante sur le site que vous voulez sécuriser avec l'authentification BASIC :
Une fois dans l'éditeur de fichier, vous devez ajouter ces quelques lignes :
Ce qui vous donnera un fichier ressemblant à cela :
Ici, vous pouvez voir que le "ServerName" est le même que le "Directory". L'"AuthUserFile" est le fameux
fichier "users" que nous avons créé avec la commande htpasswd. L'"AuthName" en BASIC est simplement ce qu'affichera
la petite fenêtre qui s'ouvrira lors de la connexion au site. Il aura plus d'importance pour l'authentification Digest.
Vous n'avez plus qu'à faire un :
Puis, accédez à votre site depuis un navigateur. Une demande va apparaitre.
Vous n'avez plus qu'à rentrer l'utilisateur que vous avez créé avec htpasswd.
Passons à l'authentification DIGEST, comme le BASIC, nous allons commencer par créer l'utilisateur DIGEST. Pour cela, nous allons faire l'équivalent de "htpasswd" mais pour DIGEST ! Je cite :
Nous allons activer le service d'authentification DIGEST ! :
Ensuite, rendez vous dans /etc/apache2/sites-available pour modifier le fichier de configuration du site que vous allez sécuriser en DIGEST.
Puis, vous allez ajouter, comme en BASIC, quelques lignes qui vont faire fonctionner le DIGEST :
Faites attention à l'"AuthName", vous devez entrer la même chose que dans "htdigest". (Voir l'Astuce en bleue, plus haut)
Ensuite, faites :
Essayez maintenant d'accéder à votre site depuis un navigateur. Une fenêtre devrait également s'ouvrir :
Vous n'avez plus qu'à rentrer l'utilisateur que vous avez créé avec htdigest.
Tout d'abord, un paquet est nécessaire pour faire du HTTPS. Nous avons besoin d'OpenSSL :
Et, comme d'hab... activer le service !
Ensuite, il vous faudra générer le certificat. Pour cela :
Dans cette commande vous allez préciser beaucoup d'informations. Par exemple la durée de vie du certificat avec -days. Ici,
mon certificat durera 700 jours. Ensuite je précise ou se situera le .crt (dans /etc/apache2/) ainsi que la clé (/etc/apache2/ également).
Je les ai appelé "server.quelquechose" mais vous pouvez mettre ce que vous voulez, tant qu'il y a un ".crt" et un ".key". Comme par exemple :
dindon.crt
dindon.key
Ce qui vous génèrera un petit questionnaire que vous allez remplir intelligemment... prenons exemple sur ce screen !
Et, pour que tout ce petit monde fonctionne, nous devons donner des droits au .crt ! Comme suit :
Une fois que c'est fait, nous devons configurer Apache2. La création d'un site en HTTPS diffère des autres. Je vais donc tout reprendre depuis le début. Tout d'abord, copier le fichier de configuration par défaut et en faire un fichier de conf !
Mon fichier s'appelle donc "pintade.conf". N'oubliez pas de mettre le .conf à la fin du fichier ! Je vais donc modifier l'@IP dans la balise <VirtualHost>. Ensuite n'oubliez pas de lui donner un petit ServerName (comme pour les autres sites) Puis, la petite difficulté de notre configuration est ici ! Vous devriez voir deux lignes spéciales : "SSLCertificateFile" et "SSLCertificateKeyFile". Une fois que vous les avez repéré, vous allez mettre :
Comme vous pouvez le voir sur ce screenshot :
Une fois que c'est fait, vous n'avez plus qu'à démarrer votre site et redémarrer Apache2 :
Il ne vous reste plus qu'à tester en tapant https://www.pintade.info/ dans l'URL de votre navigateur !