CREATION POUR HTACCESS d'un fichier HTPASSWD

Fermé
julbar48 - 23 sept. 2008 à 16:50
 julbar48 - 9 oct. 2008 à 15:40
Bonjour,

J'ai créé un BATCH (.bat) sympa de création par lot d'un fichier de mot de passe (.HTPASSWD) pour HTACCESS.
Pour commencer:

1- Il faut choisir les mots de passe pour l'ensemble des utilisateurs qui ont acces au site.
Soit il s'agit d'utilisateur qui choissisient leur mot de passe, soit vous préférez avoir le controle la dessus.
Ce site http://www.docmemo.com/informatique/motdepasse.php permet de générer autant de mot de passe qu'on veut en un seul coup et suivant certains critères de casse et de caractères alpha / numérique.

2- Création d'un fichier de mot de passe
Dans un fichier texte faire autant de lignes que d'utilisateurs, tel que :
pseudo1 passe_pseudo1
pseudo2 passe_pseudo2
pseudo3 passe_pseudo3
......
......
La création de ce fichier est à mon sens plus facile à gérer en Excel avec 2 colonnes. Colonne B avec les pseudos et colonne C avec les Mots de passe. Concernant la colonne A, mettre la formule suivante : =B1&" "&C1
Il ne vous reste plus qu'à enregistrer la première colonne en fichier .txt après avoir fait un collage spéciale en 'valeur' sur elle même.
Votre fichier texte de pseudo / mot de passe est créé. Pour des raisons de sécurité, ne stockez pas ce fichier sur votre PC (sauf crypter par un soft). Un support déporté ou sécurisé (deux clés USB feront l'affaire - 2 en cas de panne).

3- Télécharger le htpasswd.exe (Pour cela, google est mon ami !!!!)

4- CREATION D'UN FICHIER de mot de passe pour HTACCESS par lot. Pour cela, création du premier BATCH (fichier.bat). Appelons le GEN_HTPASSWD.bat
Pour les chemins d'acces dans les lignes de code, pensez juste à les adapter en fonction de l'emplacement de vos fichiers. Le fichier pass.txt est mon fichier de mot de passe non crypté créé à l'étape 2.
Voici son code:

@echo off
echo / Script realise par Julien Barrouillet
echo \ le 19/09/2008
echo /___________________________________________________________
echo ******************************
echo * CREATION DU FICHIER *
echo * DE MOT DE PASS *
echo * POUR PROTECTION HTACCESS *
echo * CRYPTAGE : CRYPT *
echo **********************************************************
echo * *
echo * INFO : *
echo * - Sauvegarde du fichier de mot de passe *
echo * - Creation d'un fichier vierge de mot de passe *
echo * - renseignement des utilisateurs et mots de passe *
echo * *
echo **********************************************************
PAUSE
CD C:\PROGRA~1\EasyPHP1-8\www\e-mialanes\intranet\
echo *
echo COPIE DU FICHIER ....
echo *
copy .htpasswd save_htpasswd.txt
echo !!! fichier sauvegarde !!!
echo *
echo CREATION DU FICHIER DE MOT DE PASSE VIERGE...
echo *
ECHO. 2>".htpasswd"
echo !!! nouveau fichier de mot de passe cree !!!
echo *
echo RENSEIGNEMENT DU FICHIER DE MOT DE PASSE ...
echo *
CD C:\PROGRA~1\EasyPHP1-8\www\MONSITE\intranet\modifpw\
FOR /F "tokens=1,2 delims=:" %%i in (pass.txt) do (
call htpasswd.exe -b C:\PROGRA~1\EasyPHP1-8\www\e-mialanes\intranet\.htpasswd %%i %%j
)
echo !!! fichier renseigne !!!
echo *
echo OPERATION TERMINEE !!!
echo *
PAUSE

5- UPDATE d'un fichier de mot de passe pour HTACCESS code utilisateur par code utilisateur avec option de création si le code utilisateur n'existe pas dans le fichier d emot de passe. Pour cela, Création d'un autre BATCH (fichier.bat). Celui va permettre de modifier certains mots de passe sans passer par le fichier texte de pseudo/mot de passe. Appelons le UPDATE_HTPASSWD.bat
Pour les chemins d'acces dans les lignes de code, pensez juste à les adapter en fonction de l'emplacement de vos fichiers.
Voici son code:

@echo off
echo / Script realise par Julien Barrouillet
echo \ le 22/09/2008
echo /___________________________________________________________
echo ******************************
echo * UPDATE D'un MOT DE PASSE *
echo * POUR PROTECTION HTACCESS *
echo * CRYPTAGE : CRYPT *
echo ************************************************************
GOTO entrecode
:entrecode
echo *
echo ENTRER LE CODE UTILISATEUR A MODIFIER :
SET /p USER=USER :
FOR /F "tokens=1,2 delims=:" %%i in (C:\PROGRA~1\EasyPHP1-8\www\MONSITE\intranet\.htpasswd) do (
IF %%i==%USER% GOTO trouve
)
GOTO pastrouve

:trouve
call htpasswd.exe C:\PROGRA~1\EasyPHP1-8\www\MONSITE\intranet\.htpasswd %USER%
echo *
echo OPERATION TERMINEE !!!
echo *
echo *
echo * !!! VERIFIEZ LE MESSAGE DE RETOUR DU PROGRAMME !!! *
echo * ____________________________________________________ *
echo * *
echo ************************************************************
GOTO autrecode

:pastrouve
echo *
echo CODE UTILISATEUR "%USER%" INCONNU !!!
echo *
GOTO continuer

:continuer
SET /p REPONSE=Voulez-vous ajouter ce code utilisateur (o/n) ?
IF %REPONSE%==o GOTO trouve
IF %REPONSE%==O GOTO trouve
IF %REPONSE%==N GOTO autrecode
IF %REPONSE%==n GOTO autrecode
echo Code reponse incorrect, saisir 'o' ou 'n'
GOTO continuer

:autrecode
SET /p REPONSE=Voulez-vous faire une nouvelle saisie (o/n) ?
IF %REPONSE%==o GOTO entrecode
IF %REPONSE%==O GOTO entrecode
IF %REPONSE%==N GOTO end
IF %REPONSE%==n GOTO end
echo Code reponse incorrect, saisir 'o' ou 'n'
GOTO autrecode

:end

6- Dans un répertoire, placez le tout :
- le fichier htpasswd.exe fraichement téléchargé
- le fichier .txt de pseudo / mot de passe
- les 2 .bat GEN_HTPASSWD.bat et UPDATE_HTPASSWD.bat


Voila, vos remarques de sécurité, ou, concerannt l'utilité de ces programmes seront les bien venues.

A+
A voir également:

3 réponses

Salut;
Encore plus simple pour seulement la création des fichiers ".htpasswd"
cryptés par htpasswd.exe :

1/ Ouvrir notepad (ou autre editeur de texte)
Copier ce batch (en changant "utilisateur" et "mot-de-passe") :

===============================================================
@echo off
set currentpath=%~dp0
echo ********************************
echo * CREATION DU FICHIER HTPASSWD *
echo ********************************
PAUSE
echo -------------------------------------
call htpasswd -c -mb "%currentpath%.htpasswd" utilisateur mot-de-passe
echo -------------------------------------
echo Appuyer sur une touche pour quitter...
PAUSE>nul
================================================================

2/ Enregistrer ce fichier avec l'extension ".bat" (par exemple "psw.bat")
dans le dossier "bin" d'apache :
---------------------------------------------------------
C:\Program Files\Apache Software Foundation\Apache2.2\bin
---------------------------------------------------------

Le fichier ".htpasswd" sera crée dans le dossier "bin" et à déposer où l'on souhaite....

Ciao.
0
Salut;
Encore plus simple pour seulement la création des fichiers ".htpasswd"
cryptés par htpasswd.exe :

1/ Ouvrir notepad (ou autre editeur de texte)
Copier ce batch (en changant "utilisateur" et "mot-de-passe") :

===============================================================
@echo off
set currentpath=%~dp0
echo ********************************
echo * CREATION DU FICHIER HTPASSWD *
echo ********************************
PAUSE
echo -------------------------------------
call htpasswd -c -mb "%currentpath%.htpasswd" utilisateur mot-de-passe
echo -------------------------------------
echo Appuyer sur une touche pour quitter...
PAUSE>nul
================================================================

2/ Enregistrer ce fichier avec l'extension ".bat" (par exemple "psw.bat")
dans le dossier "bin" d'apache :
---------------------------------------------------------
C:\Program Files\Apache Software Foundation\Apache2.2\bin
---------------------------------------------------------

Le fichier ".htpasswd" sera crée dans le dossier "bin" et à déposer où l'on souhaite....

Ciao.
0
OK pour le "currentpath".
Après, pour le reste, il faut modifier dans ton .bat à chaque fois que tu veux créer un utilisateur ou updater.
Si tu as 100 utilisateurs, tu dois modifier autant de fois ton .bat ainsi que le relancer autant de fois.


Ma solution propose :

1- de créer une fois pour toute un ficher txt contenant l'ensemble des utilisateurs ayant accès au site protégé. Puis de lancer une seule fois le .bat pour la cration complète du fichier de mot de passe.

2- Ensuite, le 2ème .bat, c'est pour la maintenance. Tu peux soit updater un mot de passe ou ajouter un utilisateur si celui-ci n'existe pas. Et tout cela sans rentrer en modif dans le .bat mais juste avec des menus de saisi dans la fenetre de commande.

Cordialement, julbar
0