Maison >Java >javaDidacticiel >Pourquoi est-ce que je reçois une « SSLHandshakeException : aucune suite de chiffrement en commun » lorsque j'utilise un SSLServerSocket ?

Pourquoi est-ce que je reçois une « SSLHandshakeException : aucune suite de chiffrement en commun » lorsque j'utilise un SSLServerSocket ?

DDD
DDDoriginal
2024-11-03 17:14:30371parcourir

Why am I receiving an

Java SSLHandshakeException "aucune suite de chiffrement en commun"

Question :

Je ne parviens pas à établir des connexions SSL à l'aide d'un SSLServerSocket. Bien que toutes les suites de chiffrement et protocoles possibles soient activés, je reçois une exception SSLHandshakeException indiquant "aucune suite de chiffrement en commun".

Réponse :

Le problème réside dans l'initialisation du Contexte SSL. La fourniture d’un tableau KeyManager nul entraîne un KeyManager vide dépourvu de certificats RSA ou DSA. Cela interdit l'utilisation de suites de chiffrement par défaut qui s'appuient sur ces certificats et conduit finalement à l'erreur. Pour résoudre ce problème :

  1. Chargez le keystore contenant vos certificats :
KeyStore ks = KeyStore.getInstance("JKS");
InputStream ksIs = new FileInputStream("...");
ks.load(ksIs, "password".toCharArray());
  1. Initialisez une KeyManagerFactory avec le keystore :
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, "keypassword".toCharArray());
  1. Mettre à jour l'initialisation SSLContext pour utiliser les KeyManagers :
SSLContext sc = SSLContext.getInstance("TLSv1.2");
sc.init(kmf.getKeyManagers(), null, new SecureRandom());

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn