GNU/Linux >> Linux Esercitazione >  >> Linux

Certificati autofirmati master su Windows e Linux

Nel mondo IT, la protezione delle applicazioni e dei domini dell'infrastruttura è fondamentale. E per raggiungere il livello di sicurezza ideale, è necessario un certificato SSL. Ma come si ottiene un certificato SSL? Uno dei modi più semplici ed economici è creare certificati autofirmati sui tuoi sistemi.

I certificati autofirmati sono certificati a chiave pubblica che gli utenti possono generare autonomamente anziché essere emessi da un'autorità di certificazione. E in questo tutorial imparerai come generare un certificato autofirmato su macchine Windows e Linux (gratuitamente).

Continua a leggere e inizia a proteggere le tue app e la tua infrastruttura!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere quanto segue:

  • Un dispositivo Windows 10+.
  • Una macchina Ubuntu con almeno 14.04.4 LTS:questo tutorial utilizza Ubuntu 20.04.4 LTS.
  • Apache installato su macchine Windows e Linux.
  • OpenSSL installato sul tuo computer Windows:questo tutorial utilizza OpenSSL 3.0.3 Light (32 bit).

Generazione di certificati autofirmati su Ubuntu

Il modo più semplice per testare il certificato autofirmato è su un server Web e uno dei server Web più utilizzati è Apache. Diamo quindi il via a questo tutorial configurando il server Apache già installato sulla macchina Ubuntu.

1. SSH nella tua macchina virtuale Ubuntu usando il tuo client SSH preferito.

2. Esegui il comando apt update di seguito per assicurarti che Ubuntu disponga di tutte le origini dei pacchetti più recenti.

sudo apt update 

3. Quindi, apri il tuo browser web preferito, vai a :80 , e vedrai che la home page di Apache si apre solo sulla porta HTTP (non sicura).

4. Ora, esegui ogni comando seguente per creare una directory denominata ~/certificates e passa alla directory in cui memorizzerai i certificati.

mkdir ~/certificates
cd ~/certificates

5. Quindi, esegui il comando openssl seguente per generare una richiesta di firma del certificato (CSR) e una chiave privata.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes

Una volta eseguito il comando, inserisci i dettagli, come mostrato di seguito.

Protezione del server Apache con il certificato SSL in Ubuntu

Dopo aver generato i tuoi certificati, dovrai configurare il server Apache per utilizzare i certificati. Ma prima, hai bisogno di una directory dedicata per contenere il tuo certificato. In seguito abiliterai il modulo SSL e verificherai se i certificati funzionano nella protezione del tuo server Apache.

1. Eseguire i seguenti comandi per creare una directory (/etc/apache2/ssl) e spostare i certificati dalla directory ~/certificates/ alla directory /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

2. Aprire il file di configurazione del sito Apache SSL predefinito (/etc/apache2/sites-available/default-ssl.conf) e aggiungere le righe seguenti. Assicurati di sostituire con il nome effettivo del tuo server.

Nel codice seguente, specifichi il percorso (chiave e file del certificato) in cui hai precedentemente copiato i certificati.

ServerName 
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On

3. Ora, esegui ogni comando seguente per abilitare il modulo SSL, abilitare il sito che hai modificato (passaggio quattro) e riavviare il servizio Apache.

# Enable the SSL module so that you can work with SSL connections.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Enable the site you modified (step four)
sudo a2ensite default-ssl.conf
# Restart the Apache service
sudo service apache2 restart

4. Infine, accedi di nuovo al tuo server Apache. Ma questa volta, utilizzando HTTPS, come mostrato di seguito.

Come puoi vedere, Apache si sta aprendo con successo con connessioni SSL su una porta HTTPS. Non preoccuparti se vedi un simbolo di avviso che mostra il messaggio Non sicuro. Riceverai questo avviso poiché stai utilizzando un certificato autofirmato (creato da te) e non dall'autorità di certificazione.

Fare clic su Procedi a (non sicuro) per continuare ad accedere al server Apache.

Vedi la stessa pagina mostrata di seguito? Congratulazioni! Hai protetto con successo il server Apache con il tuo certificato autofirmato.

Generazione di un certificato SSL in Windows

In precedenza hai protetto un server Apache ospitato su una macchina Ubuntu utilizzando un certificato autofirmato. Allo stesso modo, puoi anche proteggere il server Apache su un sistema operativo Windows.

Per proteggere il tuo server Apache su Windows:

1. Aprire il file di configurazione di Apache (httpd.conf) in C:\Apache24\conf posizione e decommenta la riga sottostante.

La riga seguente abilita il modulo SSL su macchine Windows e permette ad Apache di lavorare con la porta HTTPS.

LoadModule rewrite_module modules/mod_rewrite.so

2. Quindi, apri PowerShell come amministratore ed esegui il comando openssl seguente per generare una richiesta di firma del certificato (CSR) e una chiave privata.

openssl req -x509 -newkey rsa:4096 -keyout Apache.key -out Apache.crt -days 365 -nodes

Dopo aver eseguito il comando, inserisci i dettagli per il tuo certificato, come mostrato di seguito.

3. Passare alla directory bin di installazione di OpenSSL (C:\ProgramFiles\OpenSSL-Win64\bin ) e verifica il certificato e la chiave Apache di seguito.

Configurazione del server Apache per l'utilizzo di certificati SSL

Hai appena generato il certificato e la chiave per proteggere la connessione al server Apache. Ma come con Ubuntu, hai bisogno di una cartella dedicata per contenere il certificato e la chiave e abilitare il modulo SSL.

1. Copia il file del certificato SSL (apache.crt ) e il file della chiave privata (apache.key ) in C:\Apache24\conf cartella.

2. Modifica il file di configurazione SSL di Apache (C:/Apache24/conf/httpd.conf ), e aggiungi le seguenti righe o decommenta se già presente.

Le righe seguenti abilitano il modulo SSL e consentono ad Apache di lavorare sulla porta HTTPS.

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

3. Ora, modifica il file SSL di Apache (C:/Apache24/conf/extra/httpd-ssl.conf ) e aggiungi le seguenti righe. Questo file verrà chiamato da httpd.conf file internamente come definito in httpd.conf file (Include conf/extra/httpd-ssl.conf).

SSLCertificateFile "C:\Apache24\conf\apache.crt"
SSLCertificateKeyFile "C:\Apache24\conf\apache.key"

4. Esegui i seguenti comandi su PowerShell per accedere alla cartella del cestino di installazione di Apache e avviare il servizio Apache.

# Change the working directory
cd C:\ProgramFiles\OpenSSL-Win64\bin
# Start the Apache service
./httpd.exe

5. Infine, vai a https://localhost per verificare il server Apache.

Dovresti vedere lo stesso messaggio (Funziona!) sulla pagina, che conferma che il server Apache è in esecuzione con un certificato autofirmato su una macchina Windows.

Conclusione

In questo tutorial, hai imparato come configurare un server Web Apache su entrambi i sistemi operativi Ubuntu e Windows e verificare di poter accedere a un'istanza Apache in modo sicuro.

Ora, come pensi di migliorare il tuo gioco con Apache? Forse automatizzare le implementazioni web? Oppure creare una pipeline di CD Jenkins CI per migliorare il processo di sviluppo del software?


Linux
  1. Padroneggia il comando ls di Linux

  2. 10 MOTIVI PER CAMBIARE WINDOWS 10 IN LINUX

  3. Hosting Linux vs Windows

  4. Decrittografia di SSL utilizzando Wireshark su Linux rispetto a Windows

  5. Posizione del certificato SSL su UNIX/Linux

Passaggio da Windows a Linux

Padroneggia la riga di comando di Linux

Come eseguire Windows 95 su Linux

Come generare certificati SSL autofirmati utilizzando OpenSSL

Installa certificati SSL in un server Windows

Sicurezza Linux vs Windows