J'essaie de configurer un auditeur pour vérifier si une application vérifie le certificat du serveur (je suppose fermement que ce n'est pas). Donc, j'ai créé un certificat auto-signé fake.pem
Pour un auditeur et j'essaie de vous connecter à la demande.
socat openssl-listen:443,reuseaddr,cert=./fake.pem echo
Les paquets que je capturent dans Wireshark sont
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`
Je pensais que la Socat ne vérifie que l'option cafile
(au moins c'est ce qu'il dit dans le MANPAGE). Effectue-t-il des contrôles supplémentaires que je pourrais désactiver?
Pourrait-il y avoir d'autres bonnes raisons pour lesquelles le côté serveur se plaint n'est-il pas un certificat valide du client?
Le problème était le certificate request
partie. L'application client n'a envoyé aucun certificat et si option verify=0
est ajouté à l'auditeur Socat, cela fonctionne bien. verify
est défini sur true par défaut.