Nella guida di oggi, discuteremo su come generare un certificato SSL autofirmato su Linux e su come implementarlo in Apache. SSL sta diventando sempre più importante man mano che Internet diventa più popolare. Con i certificati Let’s Encrypt gratuiti che diventano una merce che chiunque può utilizzare, non c’è motivo per nessuno di non utilizzare SSL, per non parlare dei vantaggi del ranking di ricerca e del fatto che browser e motori di ricerca si fideranno del tuo sito.
Tuttavia, puoi anche generare il tuo certificato SSL autofirmato per uso privato sul tuo server. Uno dei motivi principali per farlo è la crittografia. Sebbene il tuo certificato personale non significherà nulla per i browser e i visitatori riceveranno comunque un messaggio di avviso se visitano direttamente il tuo sito, puoi almeno essere sicuro di essere protetto dagli attacchi “man-in-the-middle”. Un certificato autofirmato è un buon primo passo quando stai solo testando le cose sul tuo server e forse non hai ancora un nome di dominio.
Iniziamo con la nostra procedura passo passo su come creare un certificato SSL autofirmato su Linux.
Sommario
Passaggio 1: creazione di una coppia di chiavi RSA
Il primo passo nella generazione del proprio certificato SSL autofirmato consiste nell’usare il pacchetto “openssl” su Linux / CentOS per creare una coppia di chiavi RSA. Per fare ciò, assicurati di aver installato il pacchetto. In caso contrario, installalo con questo comando:
sudo yum install openssl
È probabile che tu lo abbia già disponibile sul tuo sistema – ora dovrebbe essere installato a prescindere. Dopo aver confermato che il pacchetto è installato sul tuo sistema, genera la coppia di chiavi utilizzando il seguente comando:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Questo comando utilizza la crittografia a 2048 bit e genera un file chiamato keypair.key
, come mostrato qui:
Come puoi vedere, la chiave è stata generata e posizionata nella directory corrente.
Passaggio 2: estrai la chiave privata nel Cartella “httpd”
La cartella /etc/httpd
è dove il sistema operativo conserva tutti gli elementi importanti relativi a SSL. Per prima cosa, creiamo una nuova cartella per contenere tutti i nostri file relativa alla nostra chiave privata:
sudo mkdir /etc/httpd/httpscertificate
Abbiamo chiamato la cartella httpscertificate
e la faremo riferimento con quel nome per tutti gli altri esempi di riga di comando. Puoi denominare la cartella come preferisci.
Per estrarre la chiave privata dal file della coppia di chiavi che abbiamo appena creato, digita fo llowing:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Sostituisci la sezione in grassetto con l’indirizzo IP del tuo server. Oppure, se sei in grado di accedere al tuo sito con un nome di dominio, puoi utilizzare anche quello.
Questo creerà un file .key
nella cartella che abbiamo appena creato. Al termine di questo processo, possiamo eliminare il file della coppia di chiavi originale:
rm keypair.key
Passaggio 3: creazione di un file “Certificate Signing Request” (CSR)
Con la chiave, possiamo creare un file .csr
speciale che possiamo firmare noi stessi o inviare a una “Autorità di certificazione”. È in un formato standardizzato e può essere facilmente generato con la nostra chiave del passaggio precedente. Per crearlo, digita il seguente comando:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Di nuovo, sostituisci gli elementi in grassetto con l’indirizzo IP o il nome di dominio che hai scelto nel passaggio 2. Quando esegui questo comando, lo strumento ti chiederà alcune delle tue informazioni personali, come la posizione e il nome dell’organizzazione:
Una CA (abbreviazione di Autorità di certificazione) può utilizzare questi dettagli per verificare che tu sia veramente chi dici di essere. Prova a compilare i campi con quante più informazioni possibile.
Una volta che hai finito di inserire questi dettagli, lo strumento terminerà il suo lavoro e inserirà un .csr
nella directory che abbiamo creato proprio a questo scopo.
Passaggio 4: creazione del file “.crt” del certificato
Con il CSR, possiamo creare il file del certificato finale come segue. Ora utilizzeremo i nostri file .csr
e .key
per creare il nostro file .crt
:
Questo crea un file .crt
nella posizione con tutti gli altri nostri file. Ora sappiamo come generare il nostro certificato SSL autofirmato. Ecco uno screenshot di i file finali nella nostra cartella di sicurezza:
Ora dobbiamo dire ad Apache dove si trovano questi file.
Passaggio 5: configurazione di Apache per l’utilizzo dei file
Tutto ciò che dobbiamo fare ora è mostrare ad Apache dove sono i nostri certificati autofirmati generati. Innanzitutto, dobbiamo installare il pacchetto mod_ssl
con il comando:
sudo yum install mod_ssl
Una volta terminato, questo inserirà un ssl.conf
nella cartella /etc/httpd/conf.d/
. Dobbiamo modificare questo file predefinito. Utilizza il tuo editor di testo preferito:
sudo vi /etc/httpd/conf.d/ssl.conf
Ora scorri verso il basso fino a trovare le righe che iniziano con:
SSLCertificateFileSSL CertificateKeyFile
Modifica i percorsi predefiniti rispettivamente con i percorsi del file del certificato e del file della chiave, come mostrato qui:
Salva le modifiche. Ora riavvia Apache con:
sudo apachectl restart
E il gioco è fatto! Al riavvio di Apache, verrà configurato per consentire le connessioni SSL utilizzando i certificati SSL autofirmati generati.
Quando ti connetti al tuo indirizzo IP tramite HTTPS la prossima volta, sarai avvisato che non lo è un certificato attendibile:
Va bene. Lo sappiamo da quando l’abbiamo firmato noi stessi! Procedi e ti porterà al sito web effettivo:
Qui puoi vedere che sta usando il certificato che abbiamo creato. Non è molto utile per chiunque altro visiti il tuo sito poiché non può verificare la tua identità. Ma sai che è sicuro e inoltre che è crittografato. Nessun uomo in mezzo attacca!
Ora sai come generare i tuoi certificati SSL autofirmati e implementarli sul tuo server web Apache.
Se sei uno dei nostri Managed Client di hosting VPS, possiamo fare tutto questo per te senza costi aggiuntivi. Contatta semplicemente i nostri amministratori di sistema e risponderanno alla tua richiesta il prima possibile.