Nessun certificato cliente inviato con SSL a 2 vie - configurazione Tomcat

0

Sto provando a configurare un'autenticazione client (per l'autenticazione reciproca) tra 2 tomcats ma a questo punto sono bloccato dal fatto che il mio client non invii il suo certificato. Ho una CA privata quindi nessun certificato autofirmato nella configurazione

Ecco cosa è configurato finora:

1) Tomcat A (che verrà raggiunto da Tomcat B) = riproduce il server:

  • Ha un keystore con il suo certificato (chiave privata + certificato)
  • Ha un truststore con certificati pubblici dalla CA principale e Tomcat B

2) Tomcat B (che raggiungerà Tomcat A) = riproduce il client:

  • Ha un keystore con il suo certificato (chiave privata + certificato)
  • Ha un rapporto di fiducia con i certificati pubblici di RootCA e Tomcat A

I certificati sono tutti emessi dalla CA radice e possono essere utilizzati sia per l'autenticazione client sia per quella server

I tomcat sono configurati con il seguente tag connettore

<Connector port="8443" 
protocol="org.apache.coyote.http11.Http11NioProtocol" 
SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" 
clientAuth="true" 
keystoreFile="keystore.jks" keystorePass="xxxx" keyAlias="myAlias" 
truststoreFile="truststore.jks" truststorePass="xxx" />

Diagnosi finora

  • L'applicazione restituisce un "errore fatale: cattivo certificato"
  • Traccia Wireshark:

    1. B invia un "Client Hello"
    2. A invia un "Server Ciao, Certificato, Scambio chiavi del server, Richiesta di certificato, Server fatto"
    3. B invia un "Certificato, Scambio chiavi client"
    4. A invia un "Avviso (Livello: Fatale, Descrizione: Certificato non valido)

Ulteriori dettagli su:

  • Passaggio 2: Nel frame, in particolare nel "Protocollo Handshake: Server Hello", posso vedere "Extension: renegotiation_info" (anche se Tomcat viene riavviato)
  • Passaggio 3: Nel frame, in particolare nel "Protocollo handshake: certificato", posso vedere "Lunghezza certificati: 0"

Questo ultimo punto mi fa pensare che il certificato Client (certificato B) non invii il certificato.

Domande:

  1. Come posso verificare / verificare che il certificato sia ben inviato?
  2. Come posso risolvere la situazione?
posta el_grom 16.04.2018 - 09:27
fonte

0 risposte

Leggi altre domande sui tag