GLG Programs fa uso di cookie per migliorare l'esperienza di navigazione degli utenti, ma non per tracciarne un profilo. Proseguendo nella navigazione, si accetta implicitamente l'utilizzo dei cookie.
[OK]Note legaliNon mi importa
Logo GLGPrograms Logo GLGPrograms

Webserver su Raspberry Pi

[Icona della Guida] Come configurare un Raspberry Pi affinché possa essere utilizzato come server per ospitare un sito web domestico (versione PDF)

Connessione SSL con protocollo HTTPS

Per garantire sicurezza ai visitatori del sito, oppure per rendere più sicuro l'accesso alle pagine di amministrazione, si può crittografare la connessione al webserver utilizzando SSL con protocollo HTTPS. Per garantire questo tipo di accesso, è necessario avere un certificato, che può essere acquistato (o concesso gratuitamente in prova per un periodo limitato, circa 2-4 settimane) da un'azienda autorizzata, oppure, più semplicemente, può essere creato al volo e autofirmato. In questo secondo caso, è necessario tenere presente che, normalmente, i comuni browser visualizzano un messaggio di avviso quando si naviga su un sito la cui connessione crittografata è consentita da un certificato autofirmato: pertanto, consiglio di utilizzarlo solamente per le pagine di amministrazione del sito — non accessibili ai comuni visitatori e ai motori di ricerca (Sezione 8.5).

Per poter utilizzare un certificato SSL, occorre installare openssl:
# apt-get install openssl
Se si è acquistato un certificato da un'autorità esterna, è possibile abilitarlo saltando direttamente alla Sezione 8.4.2, altrimenti procedere con la prossima Sezione 8.4.1.
Esempio di URL in HTTPS Col protocollo HTTPS, il server si autentica col client e la connessione avviene in maniera cifrata

Generazione di un certificato SSL

Secondo quanto spiegato dettagliatamente anche in questa guida del wiki ufficiale di Debian, creiamo una cartella in cui tenere i certificati, generiamoli, e rendiamoli accessibili solamente a openssl:

# mkdir -p /etc/ssl/localcerts
# openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key
# chmod 600 /etc/ssl/localcerts/apache*

Durante la creazione del certificato, generiamo quanta più entropia possibile, impegnando il Raspberry Pi in varie attività (potrà sembrare strano, ma ciò rende il certificato più robusto); saranno richieste interattivamente alcune informazioni circa il sito: in particolare, alla richiesta del Common Name (e.g. server FQDN or YOUR name) inseriamo il dominio al quale risponde Apache (ad esempio, glgprograms.it).

Abilitazione del certificato SSL

Una volta creato il certificato, aggiungiamo il modulo SSL ad Apache:
# a2enmod ssl
e infine configuriamo un host virtuale che utilizzi il certificato, abilitandolo all'accettazione delle connessioni sulla porta 443 e inserendo nelle direttive <VirtualHost> quanto segue:
  SSLEngine On
  SSLCertificateFile /etc/ssl/localcerts/apache.pem
  SSLCertificateKeyFile /etc/ssl/localcerts/apache.key

Una volta riavviato Apache, interrogandolo con un browser all'indirizzo https://dominio/, potremmo navigare sito al riparo da occhi indiscreti e attacchi man in the middle (sempre ammesso di ricordarsi di controllare che il certificato sia il nostro).

Pagina scritta da Giovan BattistaGiovan Battista

Hai una domanda? Scrivici!
Questa pagina ti è piaciuta? Condividila!
Share on Facebook Share on Google+ Share on linkedin