[apache - ssl] verifica del certificato client

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

[apache - ssl] verifica del certificato client

Messaggio da nik600 »

Ciao

sto cercando di impostare su un virtual hosts di apache la verifica del certificato lato client.

La configurazione sembra funzionare ma nn mi viene riconosciuto il certificato che mi sono installato sul browser

(sia il certificato del server, che quello della CA, che quello del browser meli sono creati io con openssl e li ho firmati con quello della CA)

configurazione:

Codice: Seleziona tutto


<VirtualHost testing:443>
SSLEngine on

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /home/universita/testing
ServerName testing:443
ErrorLog testing-error_log
CustomLog logs/ssl_request_log "%t %h %{SSL_CLIENT_VERIFY}x %{SSL_CIPHER}x %r %b"


SSLCertificateFile /home/universita/testing/certificati/certificati/certificato.crt	
SSLCertificateKeyFile /home/universita/testing/certificati/chiavi/certificato.key

SSLCACertificateFile /home/universita/testing/certificati/certificati/certificato.crt

SSLVerifyClient optional
SSLVerifyDepth  10

</VirtualHost>

nei log vedo:

Codice: Seleziona tutto


root@criminal:/home/nik600$ tail -f /usr/local/apache2/logs/ssl_request_log 
[12/Mar/2007:16:58:13 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/prova.php HTTP/1.1 1739
[12/Mar/2007:16:58:15 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/prova.php HTTP/1.1 1739
[12/Mar/2007:17:03:10 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET / HTTP/1.1 319
[12/Mar/2007:17:03:12 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/ HTTP/1.1 312
[12/Mar/2007:17:03:25 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/prova.php HTTP/1.1 1739
[12/Mar/2007:17:03:25 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/prova.php HTTP/1.1 1739
[13/Mar/2007:14:43:01 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET / HTTP/1.1 319
[13/Mar/2007:14:43:01 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /favicon.ico HTTP/1.1 209
[13/Mar/2007:14:43:01 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/ HTTP/1.1 312
[13/Mar/2007:14:43:03 +0100] 127.0.0.1 NONE DHE-RSA-AES256-SHA GET /protected/prova.php HTTP/1.1 1701


come vedete l'autentificazione del client risulta essere NONE, mentre sul browser il certificato è stato importato correttamente.

idee?

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun 15 mar 2004, 0:00
Contatta:

Messaggio da nik600 »

ho seguito con calma la procedura spiegata qui

http://httpd.apache.org/docs/2.0/ssl/ss ... rtificates

e ho risolto

vi posto un mini- riassunto di quello che bisogna fare:

Chiave e certificato della CA

Codice: Seleziona tutto

nik600@criminal:/home/win/universita/tesi/certificati$ openssl genrsa -des3 -out CA.key 1024
nik600@criminal:/home/win/universita/tesi/certificati$ openssl req -new -x509 -nodes -sha1 -days 365 -key CA.key -out CA.crt
Chiave e certificato del server web

Codice: Seleziona tutto

nik600@criminal:/home/win/universita/tesi/certificati$ openssl genrsa -des3 -out server.key 1024
nik600@criminal:/home/win/universita/tesi/certificati$ openssl req -new -key server.key -out server.csr
Chiave e certificato del client

Codice: Seleziona tutto

nik600@criminal:/home/win/universita/tesi/certificati$ openssl genrsa -des3 -out client.key 1024
nik600@criminal:/home/win/universita/tesi/certificati$ openssl req -new -key client.key -out client.csr
Firma dei certificati client e server con il certificato della CA
Nota: bisogna creare una directory demoCA in cui fare un file index.txt e un file serial che contiene il serial del certificato della CA

Codice: Seleziona tutto

nik600@criminal:/home/win/universita/tesi/certificati$ openssl ca -in server.csr -cert CA.crt -keyfile CA.key -out server.crt -outdir ./
nik600@criminal:/home/win/universita/tesi/certificati$ openssl ca -in client.csr -cert CA.crt -keyfile CA.key -out client.crt -outdir ./
Esportazione del certificato client nella forma pk12 per il browser

Codice: Seleziona tutto

pkcs12 -export -in client.crt -inkey client.key -certfile CA.crt -name "Certificato Client" -out certificatobrowser.p12
fine...

Avatar utente
alessiodf
Linux 3.x
Linux 3.x
Messaggi: 823
Iscritto il: ven 14 ott 2005, 21:04
Slackware: current
Kernel: 2.6.26.4
Desktop: Kde 4.1
Località: Roma
Contatta:

Messaggio da alessiodf »

Utilissimo! grazie mille, proprio stamane stavo impazzento con sti certificati :)

Rispondi