Alerte de prise de contact SSL : erreur de nom non reconnu après la mise à niveau de Java 1.7
Description du problème :
Après lors de la mise à niveau vers Java 1.7, les utilisateurs peuvent rencontrer une « SSLProtocolException : alerte de prise de contact : erreur "unrecognized_name" lors de l'établissement de connexions SSL aux serveurs Web. Ce problème survient généralement lors de la tentative d'accès à des certificats de serveur auto-signés ou mal configurés.
Cause :
Java 1.7 introduit la prise en charge de l'indication de nom de serveur (SNI) par défaut. Alors que la plupart des serveurs Web gèrent efficacement SNI, certains serveurs mal configurés peuvent renvoyer une alerte « Nom non reconnu » lors de la négociation SSL, qui est ignorée par la plupart des clients, à l'exception de Java.
Résolution :
Pour résoudre ce problème, vous pouvez utiliser l'une des solutions de contournement suivantes :
Désactivez SNI via Ligne de commande :
Exécutez votre application avec l'option de ligne de commande suivante :
java -Djsse.enableSNIExtension=false yourClass
Cela désactivera globalement SNI pour l'ensemble de l'application.
Désactiver SNI dans le code Java :
Vous pouvez également désactiver SNI par programme en définissant le Propriété "jsse.enableSNIExtension" avant toute action SSL :
System.setProperty("jsse.enableSNIExtension", "false");
Gestion des alertes de nom non reconnu :
Si vous souhaitez prendre en charge des serveurs mal configurés tout en utilisant SNI :
Remarque importante :
Désactivation SNI peut compromettre les meilleures pratiques de sécurité. Si possible, configurez correctement vos serveurs pour qu'ils prennent en charge SNI afin d'éviter ce problème.
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!