Come generare e installare il certificato autofirmato su Apache?

Il Secure Socket Layer (SSL) viene utilizzato per crittografare il flusso di dati tra il server web e il client web (il browser).

SSL utilizza la cosiddetta crittografia asimmetrica, comunemente denominata crittografia a chiave pubblica (PKI). Con la crittografia a chiave pubblica vengono create due chiavi, una pubblica e una privata. Qualunque cosa crittografata con entrambe le chiavi può essere decrittografata solo con la chiave corrispondente. Pertanto, se un messaggio o un flusso di dati sono stati crittografati con la chiave privata del server, possono essere decrittografati solo utilizzando la chiave pubblica corrispondente, garantendo che i dati provengano solo dal server.

Il certificato SSL Apache firmato da un'autorità di certificazione (CA) affidabile garantisce che il titolare del certificato sia una persona o un'organizzazione reale. Senza un certificato firmato affidabile, i tuoi dati potrebbero essere crittografati, tuttavia, la parte con cui stai comunicando potrebbe non essere chi pensi. Senza il certificato SSL di Apache, gli attacchi di impersonificazione sarebbero molto più comuni.

Il toolkit openssl viene utilizzato per generare una chiave privata RSA e una CSR (Certificate Signing Request). Può anche essere utilizzato per generare certificati autofirmati che possono essere utilizzati a scopo di test o per uso interno.

Passaggio 1: genera una chiave privata

Il primo passo è creare la tua chiave privata RSA. Questa chiave è una chiave RSA a 1024 bit che viene crittografata utilizzando Triple-DES e archiviata in un formato PEM in modo che sia leggibile come testo ASCII.

openssl genrsa -des3 -out server.key 1024 Generazione della chiave privata RSA, modulo lungo 1024 bit .........................................................++++++ ........++++++ e è 65537 (0x10001) Inserisci la passphrase PEM: Verifica password: inserisci la passphrase PEM:

Passaggio 2: generare una CSR (richiesta di firma del certificato)

Una volta generata la chiave privata, è possibile generare una richiesta di firma del certificato. La CSR viene quindi utilizzata in due modi. Idealmente, la CSR verrà inviata a un'autorità di certificazione, come Verisign, che verificherà l'identità del richiedente ed emetterà un certificato firmato. La seconda opzione è autofirmare la CSR, come verrà dimostrato nella sezione successiva.

Durante la generazione della CSR ti verranno richieste diverse informazioni. Questi sono gli attributi X.509 del certificato. Uno dei prompt sarà "Nome comune (ad esempio, il TUO nome)". È importante che questo campo sia compilato con il nome di dominio completo del server da proteggere tramite SSL. Se il sito web da proteggere è https://yourdomain.com, quindi inserisci "tuodominio.com" al prompt. Il comando per generare la CSR è il seguente:

openssl req -new -key server.key -out server.csr Nome Paese (codice a 2 lettere) [GB]:IN Nome dello stato o della provincia (nome completo) [Berkshire]:Karnataka Nome della località (ad esempio, città) [Newbury]: Bangalore Nome dell'organizzazione (ad esempio, azienda) [My Company Ltd]: nome dell'azienda Nome dell'unità organizzativa (ad esempio, sezione) []:Information Technology Nome comune (ad esempio, il tuo nome o il nome host del tuo server) []:tuodominio.com Indirizzo e-mail []:[email protected] Inserisci i seguenti attributi "extra". da inviare insieme alla richiesta di certificato Una password di sfida []: Un nome di società facoltativo []:

Passaggio 3: rimuovere la passphrase dalla chiave

Uno sfortunato effetto collaterale della chiave privata con passphrase è che il server web richiederà la passphrase ogni volta che viene avviato il server web. Ovviamente questo non è necessariamente conveniente in quanto non sarà sempre presente qualcuno per digitare la passphrase, ad esempio dopo un riavvio o un arresto anomalo del sistema. mod_ssl include la possibilità di utilizzare un programma esterno al posto della finestra di dialogo della passphrase incorporata, tuttavia, anche questa non è necessariamente l'opzione più sicura. È possibile rimuovere la crittografia Triple-DES dalla chiave, quindi non è più necessario digitare una passphrase. Se la chiave privata non è più crittografata, è fondamentale che questo file sia leggibile solo dall'utente root! Se il tuo sistema viene compromesso e una terza parte ottiene la tua chiave privata non crittografata, il certificato corrispondente dovrà essere revocato. Detto questo, utilizza il seguente comando per rimuovere la passphrase dalla chiave:

cp server.key server.key.org openssl rsa -in server.key.org -out server.key

Il file server.key appena creato non contiene più passphrase.

Passaggio 4: generazione di un certificato autofirmato

A questo punto dovrai generare un certificato autofirmato perché non prevedi di far firmare il tuo certificato da una CA o desideri testare la tua nuova implementazione SSL mentre la CA firma il tuo certificato. Questo certificato temporaneo genererà un errore nel browser client per cui l'autorità di certificazione che firma è sconosciuta e non attendibile.

Per generare un certificato temporaneo valido per 365 giorni, emettere il seguente comando:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Firma ok oggetto=/C=CH/ST=Berna/L=Oberdiessbach/O=Akadia AG/OU=Informazioni Technology/CN=public.akadia.com/Email=martin punto zahn at akadia punto ch Ottenere la chiave privata

Passaggio 5: installazione della chiave privata e del certificato

Quando viene installato Apache con mod_ssl, crea diverse directory nella directory di configurazione di Apache. La posizione di questa directory varierà a seconda di come è stato compilato Apache.

cp server.crt /usr/local/apache/conf/ssl.crt cp server.key /usr/local/apache/conf/ssl.key

Passaggio 6: configurazione degli host virtuali abilitati SSL

Motore SSL acceso FileCertificatoSSL /usr/local/apache/conf/ssl.crt/server.crt FileChiaveCertificatoSSL /usr/local/apache/conf/ssl.key/server.key SetEnvIf agente utente ".*MSIE.*" nokeepalive ssl-unclean-shutdown Log CustomLog/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

Ora riavvia Apache e controlla.

Mettiti in contatto con noi.

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

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

it_ITItalian