HTTPS=openSSL(HTTP);

Siamo in blog di amici, diceva qualcuno… ma stamattina ho fatto un grosso errore!
In pratica vi ho postato un articolo ma, non vi ho fornito un metodo per passare la connessione al cloud in https ovvero “sicura”, lasciando tutto alla mercé dei guardoni.

Quindi è logico riparare… iniziamo!
sudo mkdir -p /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Spiegone in breve:
req: specifica un sottocomando per la gestione della richiesta di firma del certificato X.509 (CSR).
-x509: questa opzione specifica che vogliamo creare un file di certificato auto-firmato.
-nodes: questo dice all’applicazione openssl che non vogliamo specificare una passphrase, una passphrase ci richiederà di inserirla ogni volta che Apache viene riavviato, il che è doloroso da gestire.
-days 365: indica il numero di giorni per i quali il certificato deve rimanere valido, dopo questo numero di giorni sarà necessario generare un nuovo certificato.
-newkey rsa: 4096: questo creerà la richiesta di certificato e una nuova chiave privata allo stesso tempo. Dovrai farlo poiché non abbiamo creato una chiave privata in anticipo. Rsa: 2048 dice a OpenSSL di generare una chiave RSA lunga 2048 bit.
-keyout: questo parametro indica il file di output per il file della chiave privata che si sta creando.
-out: questa opzione indica il file di output per il certificato che stiamo generando.
Vi si mostrerà una maschera con una serie di richieste, completatele es.
Country Name (2 letter code) [IT]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [XXX]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Abilitiamo il modulo ssl per il nostro apache:
sudo a2enmod ssl
Modifichiamo il file di configurazione di apache:
sudo nano /etc/apache2/sites-available/default-ssl.conf
E cambiamo:
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

In questo:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Rendiamo il nostro web “https” unicamente fruibile, ovvero sarà l’unico modo per raggiungere la pagina, dirottando tutto il traffico su canale sicuro ovvero https.
sudo nano /etc/apache2/sites-available/000-default.conf

ServerAdmin [email protected]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

Infine abilitiamo il nostro conf e riavviamo apache con la nuova config:
sudo a2ensite default-ssl.conf
sudo a2enmod rewrite
sudo service apache2 restart

Adesso il vostro NextCloud è attivo all’indirizzo: https://localhost/nextcloud

Bisogna specificare, che questa procedura è utilizzabile per qualsiasi progetto, pagina o blog voi vogliate rendere sicuro attraverso il protocollo HTTPS. 

Potrete, per facilità di utilizzo oppure perché siete tool amatori, utilizzare il servizio automatico come https://certbot.eff.org . Andando sulla pagina, vi dirà come fare e cosa fare in via del tutto automatica. La scelta è sempre vostra!