ownCloud su Raspberry Pi: usare SSL

Posted by RedBlue on December 17, 2016 · 3 mins read

Dopo aver installato ownCloud sul nostro Raspberry Pi, e magari aver configurato un servizio di DNS dinamico come No-IP per potervi accedere dall'esterno della nostra rete locale, potremmo voler rendere più sicuro il collegamento, e qui entra in gioco il protocollo SSL.

Per prima cosa installiamolo (anche se probabilmente su Raspbian è già tutto pronto):

sudo apt-get install openssl

Poi, va abilitato nella nostra installazione di Apache:

sudo a2enmod ssl

Poi, per comodità, creiamo una directory dove andremo ad inserire i certificati una volta ottenuti:

sudo mkdir /etc/apache2/ssl

Benissimo, a questo punto basta creare il nostro certificato col seguente comando:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/sslkey.key -out /etc/apache2/ssl/sslcert.crt

Vi verranno poste alcune domande, la più importante delle quali è senza dubbio il Common Name, alla quale dovrete rispondere con la URL del vostro servizio (ovviamente, parliamo della URL "esterna"). Dopo aver risposto all'ultima domanda, verranno creati il certificato SSL e la relativa chiave nella directory creata in precedenza.

A questo punto però, ancora non abbiamo terminato, in quanto è necessario configurare Apache affinchè usi SSL. Personalmente, ho scelto di creare un file apposito, ma è possibile anche modificare quelli esistenti:

sudo nano /etc/apache2/sites-available/owncloud-ssl.conf

Con all'interno:



  

    ServerAdmin redblue@red-blue.it

    ServerName localhost/owncloud

    ServerAlias owncloud

    DocumentRoot /var/www/owncloud

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on

    SSLCertificateFile /etc/apache2/ssl/sslcert.crt

    SSLCertificateKeyFile /etc/apache2/ssl/sslkey.key

    

       SSLOptions +StdEnvVars

    
èèèèè
    è
è
       SSLOptions +StdEnvVars

    

    BrowserMatch "MSIE [2-6]" \

           nokeepalive ssl-unclean-shutdown \

           downgrade-1.0 force-response-1.0

    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

  

Abilitiamo il sito:

sudo a2ensite owncloud-ssl

E riavviamo Apache:

sudo systemctl reload apache2.service

E abbiamo finito. Attenzione però perchè il browser vi dirà comunque che il certificato SSL usato non è attendibile (anche se vi consentirà tranquillamente la connessione, è solo un avviso): questo avviene perchè il certificato che abbiamo creato non è stato rilasciato da un'autorità certificata, ovvero nessuno ha verificato che i dati inseriti siano veritieri.

Normalmente, un certificato SSL attendibile è a pagamento (il costo annuo dipende da vari fattori), ma esistono anche servizi che consentono di ottenerne uno gratuito. Per quanto riguarda il sottoscritto, quello "autoprodotto" va più che bene per lo scopo che mi sono prefisso.

Ovviamente, nel caso decidiate di ottenere un certificato attendibile, la procedura è esattamente la stessa, anzi addirittura la chiave che abbiamo creato potrà essere utilizzata nella procedura di certificazione.

Alla prossima..