Pourquoi mon client Java ne parvient-il pas à transmettre son certificat lors de la prise de contact SSL ?
Dans une tentative de connexion à un service Web sécurisé à l'aide de Java , les utilisateurs rencontrent fréquemment des échecs de négociation. Malgré une configuration correcte du keystore et du truststore, le problème sous-jacent provient souvent de la réticence de Java à transmettre le certificat client lors de la négociation.
Comprendre le problème :
Proposé Solutions :
1. Adresser la chaîne de certificats brisée :
Vérifiez que le certificat SubCA a été correctement importé dans le magasin de clés, sans rompre la chaîne de certificats. Cela peut être fait en utilisant keytool -v -list -keystore store.jks. Si un seul certificat est visible par entrée d'alias, la chaîne est probablement rompue.
Importer la chaîne de certificats dans le Keystore :
Pour résoudre le problème, importez le certificat client et toute sa chaîne de certificats dans l'alias du magasin de clés contenant la clé privée.
2. Problème de configuration côté serveur :
Bien que la demande du serveur pour un certificat signé par SubCA soit raisonnable, le strict respect de la demande par Java peut être inutilement restrictif. Il a été observé que les navigateurs comme Chrome et OpenSSL sont plus flexibles à cet égard.
Solution de contournement :
Pour contourner le problème, une approche alternative peut être utilisée :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!