Configurazione del protocollo SSL in Apache su Linux Centos 7

by | Gen 22, 2019

SSL è sinonimo di una tecnologia di sicurezza standard globale che consente la comunicazione crittografata tra un browser (Chrome, Edge, Safari) e un server web; letteralmente sta a significare Secure Sockets Layer.
Il certificato SSL è una sorta di garanzia che viene rilasciata da un ente definito Certification Authority. In pratica l’autorità che emette il certificato garantisce che l’organizzazione con cui stai “parlando” attraverso il browser è realmente chi dichiara di essere.

Di seguito gli steps per configurare un certificato SSL in Apache su distribuzione CentOS Linux release 7.6.1810 (Core)

INSTALLAZIONE DI APACHE

Installare Apache con il comando:

Abilitare Apache con il comando:

INSTALLAZIONE SSL

Installare il modulo SSL con il comando:

Creare la cartella per i certificati con il comando:

Settare le ACL corrette digitando:

Con il seguente comando creiamo un certificato SSL:

Di seguito la spiegazione di tutti i parametri utilizzati nel comando:

Openssl: Questo è lo strumento di riga di comando di base per la creazione e la gestione di certificati OpenSSL, chiavi e altri file.
Req: Questo sottocomando specifica che vogliamo utilizzare la gestione delle richieste di firma di certificato X.509 (CSR). Il “X.509” è uno standard di infrastruttura chiave pubblica che SSL e TLS aderiscono per la gestione delle chiavi e dei certificati. Vogliamo creare un nuovo certificato X.509, quindi stiamo usando questo sottocomando.
-x509: questo modifica ulteriormente il subcomando precedente indicando l’utilità che vogliamo creare un certificato auto-firmato anziché generare una richiesta di firma del certificato, come accade normalmente.
-nodes: questo dice a OpenSSL di saltare l’opzione per proteggere il nostro certificato con una passphrase. Abbiamo bisogno di Nginx per poter leggere il file, senza intervento dell’utente, quando il server si avvia. Una passphrase impedirebbe che questo accada perché dovremmo entrare dopo ogni riavvio.
-days 3650: Questa opzione imposta la durata del tempo che il certificato sarà considerato valido. nel mio caso ho impostato la valisità per 10 anni
-newkey rsa: 2048: specifica che vogliamo generare un nuovo certificato e una nuova chiave contemporaneamente. Non abbiamo creato la chiave necessaria per firmare il certificato in un passaggio precedente, quindi abbiamo bisogno di crearlo insieme al certificato. La parte di rsa: 2048 lo dice per fare un tasto RSA che è 2048 bit lungo.
-keyout: questa riga dice a OpenSSL dove posizionare il file di chiave privata generato che stiamo creando.
-out: Questo indica a OpenSSL dove inserire il certificato che stiamo creando.

Di seguito vi riporto le domande a cui rispondere:

Entrambi i file creati verranno collocati nelle sottodirectory appropriate della directory /etc/ssl.

Mentre utilizziamo OpenSSL, dobbiamo anche creare il gruppo Diffie-Hellman, utilizzato per negoziare Perfect Forward Secrecy con i client.

Creiamo il gruppo con questo comando:

Questa operazione può richiedere diversi minuti ed al termine avremo un gruppo DH in /etc/ssl/certs/dhparam.pem che possiamo usare nella nostra configurazione.

Poiché la versione di Apache fornita con CentOS 7 non include la direttiva SSLOpenSSLConfCmd, dovremo aggiungere manualmente il file generato alla fine del nostro certificato autofirmato. Per fare ciò, digitare:

cat /etc/ssl/certs/dhparam.pem | sudo tee -a /etc/ssl/certs/apache-selfsigned.crt

Il file apache-selfsigned.crt ora dovrebbe avere sia il certificato sia il gruppo Diffie-Hellman generato.

CONFIGURAZIONE DI APACHE CON SSL

Apriamo il file di configurazione di Apache con diritti di root con il comando:

Innanzitutto, rimuovere il commento dalla riga DocumentRoot e modificare il path tra virgolette e la posizione della radice del documento del proprio sito.
Per impostazione predefinita, questo sarà in /var/www/html e non è necessario modificare questa riga se non hai modificato la root del documento per il tuo sito.
Quindi, decommentare la riga ServerName e sostituire NOME-SERVER con il nome del dominio o l’indirizzo IP del server (qualunque sia il nome comune nel certificato):

Successivamente, trovare le linee SSLProtocol e SSLCipherSuite e eliminarle o commentarle.

Quindi trovare le righe SSLCertificateFile e SSLCertificateKeyFile e modificale nella directory che abbiamo creato in precedenza:

Ora posizionarsi al fondo del file di configurazione dopo il tag </VirtualHost> e incollare le seguenti righe di codice:

Salvare e chiudere il file

Per reindirizzare tutto il traffico da crittografare SSL, creare e aprire un file che termina in .conf nella directory /etc/httpd/conf.d con il comando:

quindi incollare le seguenti righe di codice:

Salvare e chiudere il file di configurazione

Per verificare che la configurazione sia OK lanciare il comando:

Se appare il messaggio Syntax OK vuol dire che è tutto corretto.

Riavviare Apache per rendere effettive le configurazioni:

Se richiamiamo il link

http://NOME-SERVER dovrebbe andare in automatico in https://NOME-SERVER

Scritto da Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Infrastrutture IT
  • ACT For Cange  Mental Coach
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore Collaboratore
Categorie:CentOS | Apache

Related Post

0 Comments

Submit a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione