come si fa a socat ignorare il certificato del cliente?

7

Sto provando a impostare un listener per verificare se un'applicazione verifica il certificato del server (presumo strongmente che non lo sia). Così ho creato un certificato autofirmato fake.pem per un listener e sto provando a connettermi dall'applicazione.

socat openssl-listen:443,reuseaddr,cert=./fake.pem echo

I pacchetti che catturo in Wireshark sono

Client (C) -> Server(S): SYN
S->C: SYN-ACK
C->S: ACK
C->S: sClient Hello
S->C: ACK
S->C: Server Hello, Certificate, Server Key Exchange, Certificate Request, Server Hello Done
C->S: Certificate, Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
S->C: Alert (Level: Fatal, Description: handshake Failure)
S->C: RST ACK'

Ho pensato che socat controlli solo l'opzione cafile (almeno questo è quello che dice nella manpage). Effettua ulteriori controlli che potrei disattivare?

Potrebbero esserci altri buoni motivi per cui il lato server si lamenterebbe oltre a non un certificato valido dal client?

    
posta user857990 11.06.2013 - 13:15
fonte

1 risposta

9

Il problema era la parte certificate request . L'applicazione client non ha inviato alcun certificato e se l'opzione verify=0 è stata aggiunta al listener socat, funziona correttamente. verify è impostato su True per impostazione predefinita.

    
risposta data 11.06.2013 - 14:08
fonte

Leggi altre domande sui tag