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 :
KeyStore ks = KeyStore.getInstance("JKS"); InputStream ksIs = new FileInputStream("..."); ks.load(ksIs, "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(ks, "keypassword".toCharArray());
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!