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:

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    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
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch "MSIE [2-6]" \
           nokeepalive ssl-unclean-shutdown \
           downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  </VirtualHost>
</IfModule>

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

Share
Molto scarsoScarsoSufficienteBuonoOttimo (Nessun voto)
Loading...

Licenza

Creative Commons License
RedBlue's Blog di RedBlue è rilasciato sotto licenza Creative Commons 2.5 Italia.

Badges

Cionfs'Forum CMS Check PageRank

Other

Se hai trovato utile questo blog, supportalo con una piccola donazione per l'hosting..


Locations of visitors to this page