Ciao,
E' veramente dura spiegarsi con chiarezza, ma ci provo.
Dopo svariate ore di prove sono arrivato alla conclusione che con plesk quello che vorrei fare io non non credo si possa fare nemmeno acquistando un certificato a pagamento. (in quanto non credo che quando si acquista un cert a pagamento ti diano anche quelli client .pfx, .p12)
Salvo che non sbaglio qualcosa il ragionamento è il seguente.
Dopo essermi generato i certificati vado sulle opzioni ssl del dominio carico i certificati ssl rispettivamente server.key, server.pem e ca.pem.
Plesk a questo punto risponde ok anche se manca la parte csr del certificato.
(spiego questo in fondo al post)
Rigenero con websrvmng il vhost e restarto apache affinchè si aggiorni il file http.include che adesso ha due direttive in più:
Codice PHP:
SSLCertificateFile /path/to/file
SLLCACertificateFile /path/to/file
Plesk mette questi file in /usr/local/psa/var/certificates
Adesso se vado su https://www.mydomain.com vengo buttato fuori sia che abbia il certificato client oppure no.
Infatti nel file di log del dominio è presente il seguente errore
Codice PHP:
[Tue May 25 15:19:32 2010] [error] Re-negotiation handshake failed: Not accepted by client!?
e nel file di log di apache è presente il seguente errore
Codice PHP:
RSA server certificate CommonName (CN) `localhost.localdomain' does NOT match server name!?
.
Quindi dopo un po capisco che apache sta tentando di autenticarmi rispetto ai file di default specificati in ssl.conf che sono appunto /etc/pki .... localhost.key e localhost.cert.
Qundi prova a mettere nel file vhost_ssl.conf la direttiva
Codice PHP:
SSLCertificateKeyFile /path/to/server.key
Ma purtroppo ricevo l'errore al riavvio di apache. L'errore è che queste direttive non possono stare nel file vhost_ssl.conf a quanto dice apache (httpd -t).
Qundi sembra che non ci sia modo di caricare attraverso plesk un set completo di certificati a meni di genarare la parte CSR da plesk; Ma a questo punto poi non sono più in grado di generarmi tutti gli altri certificati partendo da questo.
L'unica soluzione sarebbe intervenire in maniera pesante in httpd.include (cosa da non fare assolutamente), per specificare le direttive SSL che li sono ammesse.
Forse si può disabilitare il SSLVerifyClient e creare un sistema lato script per verificare il client-certificate non saprei.
Altre soluzioni non ne vedo.
Segnalibri