Impostare una qualche forma di autenticazione con password per un sito web può essere una parte cruciale della condivisione di contenuti con utenti autorizzati. In un altro articolo discutiamo come fare esattamente questo utilizzando alcune regole .htaccess intelligenti. Se volete leggere di più su come questo viene fatto potete controllare il nostro articolo, che copre come proteggere con password file o directory con .htaccess. Tuttavia, vi starete chiedendo come vengono convalidate queste credenziali e dove vengono memorizzate? La risposta è il file .htpasswd, che sarà al centro di questo articolo.
Che cos’è .htpasswd?
Un file .htpasswd è tipicamente usato quando si protegge un file, una cartella o un intero sito web con una password utilizzando l’autenticazione HTTP e implementato utilizzando regole all’interno di un file .htaccess. Le credenziali dell’utente sono memorizzate su linee separate, con ogni linea contenente un nome utente e una password separati da due punti (:). I nomi utente sono memorizzati in testo semplice, mentre le password sono memorizzate in un formato crittografato con hash. Questa crittografia è di solito MD5, anche se in Linux può essere basata sulla funzione crypt(). Anche se è possibile nominare il file delle password come si vuole, questo è fortemente sconsigliato in quanto Apache è preconfigurato per utilizzare .htpasswd per impostazione predefinita, e i file di punti (file che iniziano con “.”) sono generalmente file nascosti.
Come creare un file .htpasswd?
A seconda della tua piattaforma, questo può essere fatto in diversi modi. Il metodo più semplice è quello di andare su uno dei vari siti web di creazione di .htpasswd e seguire le loro semplici istruzioni per generare le voci necessarie per un file .htpasswd. Raccomando il generatore offerto da htaccesstools.com perché è molto semplice e preciso, vai a controllare: Htpasswd Generator. Se siete come me e volete vedere come si fa senza usare un generatore, rimanete nei paraggi!
Prima di tutto dovrete avere un nome utente in mente, per questo esempio ho scelto il nome utente bob123. Poi dovrai essere connesso al tuo server via SSH, se non sei sicuro di come accedere al tuo server via SSH leggi il seguente articolo: Connessione al tuo server via SSH. Infine esegui il seguente comando, nota che se lo esegui come utente non root dovrai usare sudo.
htpasswd -c /home/usernamehere/.htpasswd bob123
Ti verrà richiesto di fornire e confermare una password per questo utente. Se vuoi aggiungere altri utenti puoi farlo tramite il seguente:
htpasswd /home/usernamehere/.htpasswd newUser2
Se dovessi controllare il contenuto del file .htpasswd dovresti vedere qualcosa di simile al seguente.
bob123:$apr1$FaPCZHMe$jYiw5.9UevKx25pBH4AsT/newUser2:$apr1$mrCHcVhc$oNdJeRcWKPk2z8dlzQI0x/