Webserver su Raspberry Pi
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 installareopenssl
:
# apt-get install opensslSe 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.

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 ssle 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).
