SSL (Secure Socket Layer ), e la sua versione migliorata, TLS (Transport Socket Layer ), sono protocolli di sicurezza utilizzati per proteggere il traffico Web inviato dal browser Web di un client a un server Web.
Un SSL certificato è un certificato digitale che crea un canale sicuro tra il browser di un client e un server web. In tal modo, i dati sensibili e riservati come i dati della carta di credito, le credenziali di accesso e altre informazioni altamente private vengono crittografati, impedendo agli hacker di intercettare e rubare le tue informazioni.
Che cos'è un certificato SSL autofirmato?
Un certificato SSL autofirmato, a differenza di altri SSL certificati firmati e considerati attendibili da un'Autorità di certificazione (CA ), è un certificato firmato da una persona fisica che lo possiede.
È totalmente gratuito crearne uno ed è un modo economico per crittografare il tuo server web ospitato localmente. Tuttavia, l'uso di un certificato SSL autofirmato è altamente sconsigliato negli ambienti di produzione per i seguenti motivi:
- Dato che non è firmato da un'Autorità di certificazione , un certificato SSL autofirmato genera avvisi sui browser Web avvertendo gli utenti di potenziali rischi futuri qualora decidano di procedere. Questi avvisi sono indesiderati e dissuadono gli utenti dal visitare il tuo sito web, portando potenzialmente a un calo del traffico web. Come soluzione alternativa a questi avvisi, le organizzazioni di solito incoraggiano i propri dipendenti a ignorare semplicemente gli avvisi e ad andare avanti. Ciò potrebbe generare un'abitudine pericolosa tra gli utenti che potrebbero decidere di continuare a ignorare questi avvisi su altri siti online, diventando potenzialmente vittime di siti di phishing.
- I certificati autofirmati hanno un livello di sicurezza basso poiché implementano tecnologie di crittografia e hash di basso livello. Pertanto, il livello di sicurezza potrebbe non essere all'altezza delle politiche di sicurezza standard.
- Inoltre, non c'è supporto per le funzioni PKI (Public Key Infrastructure).
Detto questo, l'uso di un certificato SSL autofirmato non è una cattiva idea per testare servizi e applicazioni su una macchina locale che richiede TLS / SSL crittografia.
In questa guida imparerai come installare un certificato SSL autofirmato locale su Apache server web localhost su un CentOS 8 sistema server.
Prerequisiti:
Prima di iniziare, assicurati di avere i seguenti requisiti di base:
- Un'istanza del server CentOS 8.
- Server web Apache installato sul server
- Un nome host già configurato e definito in /etc/hosts file. Per questa guida utilizzeremo
tecmint.local
un nome host per il nostro server.
Passaggio 1:installazione di Mod_SSL su CentOS
1. Per iniziare, devi verificare che Apache il server web è installato e funzionante.
$ sudo systemctl status httpd
Ecco l'output previsto.
Verifica lo stato di Apache
Se il server web non è in esecuzione, puoi avviarlo e abilitarlo all'avvio utilizzando il comando.
$ sudo systemctl start httpd $ sudo systemctl enable httpd
Avvia Apache Web Server
Successivamente puoi confermare se Apache è attivo e funzionante.
2. Per abilitare l'installazione e la configurazione del certificato SSL autofirmato locale, il mod_ssl è richiesto il pacchetto.
$ sudo dnf install mod_ssl
Una volta installato, puoi verificarne l'installazione eseguendo.
$ sudo rpm -q mod_ssl
Verifica l'installazione Mod SSL
Inoltre, assicurati che OpenSSL pacchetto è installato (OpenSSL viene installato per impostazione predefinita in CentOS 8 ).
$ sudo rpm -q openssl
Verifica l'installazione di Openssl
Fase 2:crea un certificato SSL autofirmato locale per Apache
3. Con Apache web server e tutti i prerequisiti sotto controllo, è necessario creare una directory all'interno della quale verranno archiviate le chiavi crittografiche.
In questo esempio, abbiamo creato una directory in /etc/ssl/private .
$ sudo mkdir -p /etc/ssl/private
Ora crea la chiave e il file del certificato SSL locale usando il comando:
$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt
Diamo un'occhiata a cosa rappresentano effettivamente alcune delle opzioni nel comando:
- richiesto -x509 – Ciò indica che stiamo utilizzando la richiesta di firma del certificato (CSR) x509.
- -nodi – Questa opzione indica a OpenSSL di saltare la crittografia del certificato SSL utilizzando una passphrase. L'idea qui è di consentire ad Apache di leggere il file senza alcun tipo di intervento da parte dell'utente, cosa che non sarebbe possibile se fosse fornita una passphrase.
- -newkey rsa:2048 – Questo indica che vogliamo creare contemporaneamente una nuova chiave e un nuovo certificato. La parte rsa:2048 implica che vogliamo creare una chiave RSA a 2048 bit.
- -keyout – Questa opzione specifica dove archiviare il file della chiave privata generato al momento della creazione.
- -fuori – L'opzione specifica dove posizionare il certificato SSL creato.
Crea certificato SSL locale per Apache
Fase 3:installa il certificato SSL autofirmato locale su Apache
4. Dopo aver generato il file del certificato SSL, è ora di installare il certificato utilizzando le impostazioni del server Web Apache. Apri e modifica /etc/httpd/conf.d/ssl.conf file di configurazione.
$ sudo /etc/httpd/conf.d/ssl.conf
Assicurati di avere le seguenti righe tra i tag host virtuali.
<VirtualHost *:443> ServerAdmin [email protected] ServerName www.tecmint.local ServerAlias tecmint.local DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/private/tecmint.local.crt SSLCertificateKeyFile /etc/private/tecmint.local.key </VirtualHost>
Salva ed esci dal file. Affinché le modifiche vengano apportate, riavvia Apache utilizzando il comando:
$ sudo systemctl restart httpd
5. Per consentire agli utenti esterni di accedere al tuo server, devi aprire la porta 443 attraverso il firewall come mostrato.
$ sudo firewall-cmd --add-port=443 --zone=public --permanent $ sudo firewall-cmd --reload
Fase 3:verifica del certificato SSL autofirmato locale su Apache
Con tutte le configurazioni in atto, avvia il browser e sfoglia l'indirizzo del tuo server utilizzando l'indirizzo IP o il nome di dominio del server utilizzando il protocollo https.
Per semplificare il test, potresti considerare di reindirizzare il protocollo HTTP su HTTPS sul server web Apache. Questo è così che ogni volta che navighi nel dominio in HTTP semplice, verrà automaticamente reindirizzato al protocollo HTTPS.
Quindi esplora il dominio o l'IP del tuo server
https://domain_name/
Riceverai un avviso che ti informa che la connessione non è sicura come mostrato. Questo varia da un browser all'altro. Come puoi immaginare, l'avviso è dovuto al fatto che il certificato SSL non è firmato dall'Autorità di certificazione e il browser lo registra e segnala che il certificato non può essere considerato attendibile.
Avviso certificato SSL
Per procedere al tuo sito web, fai clic su "Avanzate ' come mostrato sopra:
Procedi Avvisi sui certificati SSL
Quindi, aggiungi l'eccezione al browser.
Conferma l'eccezione di sicurezza
Infine, ricarica il browser e osserva che ora puoi accedere al server, anche se sulla barra degli URL verrà visualizzato un avviso che il sito non è completamente sicuro per lo stesso motivo per cui il certificato SSL è autofirmato e non firmato dal Autorità di certificazione.
Accedi al sito Web tramite HTTPS
Ci auguriamo che tu possa ora procedere e creare e installare un certificato SSL autofirmato sul server Web Apache localhost su CentOS 8 .
Condividere è prendersi cura...Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit