Home Chi sono Mappa del sito Contatti  
 
Java
Apache Wicket
Sistemistica Totocalcio
 
 
Programmare Applicativi...
Presentazione del libro
Panoramica dei contenuti
 
 
Giochi in PHP
Introduzione
Filetto (Tris)
Forza 4
Sudoku
 
 
Tutorial Linux/Unix
Archivio
 
 
Sql
Tutorial su Mysql
 
 
C++
Framework a oggetti
 
Archivio->Certificati

Certificati

Questo piccolo tutorial spiega come far riconosce al browser i certificati autofirmati. L'idea e di creare una CA da importare nel browser in modo da riconoscere il certificato sottoscritto (dalla CA stessa).

Prima di tutto occorre creare il nostro Ente certificatore (ca.crt) con chiave (ca.key):
openssl genrsa -des3 -out ca.key 1024
openssl req -new -x509 -key ca.key -out ca.crt

Nella creazione del certificato vengono poste delle domande, ecco un esempio di risposte:
Country Name (2 letter code) [AU]: IT
State or Province Name (full name) [Some-State]: Italy
Locality Name (eg, city) []: Giulianova
Organization Name (eg, company) [Internet Widgits Pty Ldt]: Ente Certificatore Fittizio
Organizational Unit Name (eg, section) []: Test
Common Name (eg, YOUR name) []: ente.fittizio.it
Email Address []: info@ente.fittizio.it

Con questa CA possiamo firmare i nostri certificati. Quindi a seguito dell'importazione di ca.crt sul browser, sullo stesso riconoscerà le connessioni protette firmate dalla nostra CA.

Apache Http

Generiamo chiave e certificato del server dove installare Apache Http
openssl genrsa -out chiave.key 2048
openssl req -new -key test-server.key -out test-server.csr

Nella creazione del certificato vengono poste delle domande, ecco un esempio di risposte:
Country Name (2 letter code) [AU]: IT
State or Province Name (full name) [Some-State]: Italy
Locality Name (eg, city) []: Giulianova
Organization Name (eg, company) [Internet Widgits Pty Ldt]: Test
Organizational Unit Name (eg, section) []: Test
Common Name (eg, YOUR name) []: test.test.it
Email Address []: test@test.it

Il campo più importante è 'Common Name' che indica il nome host del computer (nell'esempio test.test.it).
Dovete inserire tale nome nel file /etc/hosts
<indirizzo IP> test.test.it
Naturalmente se il computer non è rete potete inserire 127.0.0.1 altrimenti dovete mettere l'indirizzo IP assegnato.
Per fare dei test in un altro computer in rete, dovete inserire la stessa riga nel file /etc/hosts di quel computer.

Ora firmiamo il certificato test-server.csr con il nostro CA
openssl x509 -req -in test-server.csr -out test-server.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650

Il certificato test-server.crt può essere utilizzato per creare la connessione protetta.

Apache tomcat

Generiamo il keystore (.keystore). La password di default è changeit.
keytool -genkey -alias tomcat -keyalg RSA \
-dname "CN=test.test.it,OU=Test,O=Test,L=Teramo,ST=Giulianova,C=IT" \
-keystore .keystore

Il campo più importante è 'CN' che indica il nome host del computer (nell'esempio test.test.it).

Ricaviamo il certificato certreq.pem dal keystore
keytool -certreq -keyalg RSA -alias tomcat -file certreq.pem -keystore .keystore

Ora firmiamo il certificato certreq.pem con la nostra CA
openssl x509 -req -in certreq.pem -out test-server2.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650

Ora occorre importare CA come root nel keystore
keytool -import -keystore .keystore -alias root -file ca.crt

Infine importiamo nel keystore il certificato firmato dalla nostra CA.
keytool -import -keystore .keystore -alias tomcat -file test-server2.crt

Il keystore .keystore può essere utilizzato per creare la connessione protetta.