Tutto, ho un client HP VuGen che utilizza 2 connessioni TCP / IP per eseguire l'handshake TLS v1.2 con il mio server quando è abilitata l'autenticazione reciproca.
Secondo Wireshark, la sequenza è approssimativamente questa:
- Client SYN
- TLS v1.2 client ciao
- Il server invia il server ciao, certificato, scambio di chiavi del server, richiesta di certificato, server ciao fatto
- Client FIN è la vecchia connessione
- Client SYN è una nuova connessione
- Errore handshake del server sulla vecchia connessione (pacchetto esaurito)
- TLS v1.2 client ciao
- Ciao server, certificato, scambio chiavi del server, richiesta di certificato, server ciao fatto
- (tutto è ok dopo questo)
Né Openssl né un client java standalone presentano questo stesso comportamento. Quando il server chiede il certificato client per la prima volta, lo invia.
Con VuGen, non riesco a vedere nulla di diverso sul messaggio ciao dei due client, né sulle risposte del server. Ci sono sicuramente due connessioni, però, perché ci sono 2 FIN del client utilizzando 2 diverse porte in uscita.
Perché il client dovrebbe fare questo?
FWIW, non importa se eseguo il bilanciamento del carico o meno. Ho lo stesso comportamento.
Credo che questo abbia qualcosa a che fare con il server che richiede il certificato del client perché lo stesso server ha un'altra porta non MA aperta che è altrimenti configurata allo stesso modo e il client VuGen fa una sola connessione lì.
Grazie