Creazione di certificati "fasulli"

Nel caso avessimo inviato la richiesta per un certificato ufficiale ad una CA (es Verisign) e non lo abbiamo ancora ricevuto o comunque volessimo poter stabilire connessioni sicure tramite https, Ŕ possibile creare certificati "fasulli" utilizzando openssl o mod_ssl.

Innanzitutto dobbiamo creare una chiave privata (es: private.key) ed una chiave pubblica (es: public.csr). Per far questo (presupponendo di avere installato un supporto SSL) basta andare nella directory dove si vuole generare la coppia di chiavi, esempio /usr/local/apache/ssl.certs/ , lanciare il seguente comando:
[[email protected] ssl.certs]# openssl req -new -nodes -keyout private.key -out public.csr
e inserire i dati richiesti.
Una volta generata la coppia di chiavi, per generare un certificato (.crt), basta lanciare il seguente comando:
[[email protected] ssl.certs]# openssl req -key private.key -in public.csr -out fakecertificate.crt
Ora il certificato Ŕ pronto, anche se l'abbiamo generato noi e non una CA.
Fatto cio, configurare httpd.conf aggiungendo le seguenti righe:
SSLCertificateFile /etc/ssl/crt/fakecertificate.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
Ora avviare Apache con supporto SSL.
Di fatto ora Apache risponderÓ alle richieste con una connessione http sicura.
Per testare se effettivamente ci˛ avviene lanciare il seguente comando di debug:
[[email protected] diego]# openssl s_client -connect localhost:443 (o 80) -state
Attenzione, Apache non si accorge che il certificato Ŕ "fasullo", ma il browser si, e comunicherÓ, con una finestra di pop-up, all'utilizzatore che il certificato non Ŕ stato rilasciato da nessuna delle CA da lui conosciute.

Oltre al metodo sopra illustrato Ŕ possibile generare un certificato finto durante la compilazione dei sorgenti di apache o tramite uno script all'interno dei sorgenti di mod_ssl.
Lo script Ŕ mkcert.sh ed Ŕ contenuto in mod_ssl nella sottodirectory pkg.sslsup, lo script genera una chiave privata e certificato di una CA customizzabile (ca.key e ca.crt) e chiave e certificato relativo a questa CA per il server (server.key e server.crt).
Una volta generati configurare httpd.conf con la stessa procedura sopra elencata.

Altro metodo per creare un certificato Ŕ lanciare il make certificate (dopo aver lanciato il comando configure e make) quando si compila Apache con il supporto mod_ssl.
Prevede diverse varianti di creazione/installazione in funzione alla necessitÓ del certificato:
[[email protected] apache_1.3.17]# make certificate TYPE=dummy Crea un certificato realizzato dalla Snake Oil CA (ovviamente la snake Oil non esiste) intestato a se stessa.
[[email protected] apache_1.3.17]# make certificate TYPE=test Crea un certificato realizzato dalla Snake Oil CA dando la possibilitÓ di customizzarlo rispondendo alla solita trafila di domande. Serve se si vuole testare un server.
[[email protected] apache_1.3.17]# make certificate TYPE=custom Per installare un certificato ufficiale rilasciato da una CA esistente. Serve se lo si vuole installare su una macchina reale in produzione.
[[email protected] apache_1.3.17]# make certificate TYPE=existing Utilizza un certificato gia esistente (upgrade del server).
L'opzione di default Ŕ TYPE=test. Make certificate setta i parametri di httpd.conf relative ai certificati, quindi nonn si ha la necessita di aggiungere a "mano" le 2 righe relative.

Privacy Policy