Lorsque j'exécute le code suivant, pourquoi est la première poignée de main SSLV2, pas TLSV1 ou SSLV3?
Comment utiliser TLSV1 ou SSLV3 pour la première poignée de main en Java? p>
3 Réponses :
Utiliser sslsocket code>:
Merci, cette solution est meilleure car elle n'affecte pas les autres connexions.
pour TLSV1: Démarrage du client JVM avec
System.setProperty("https.protocols", "TLSv1");
L'argument «-Dhttps.protocols» a très bien fonctionné pour moi sur un logiciel de box noire ancien et exclusif que je ne pouvais pas changer.
Quelle version de Java utilisez-vous? Aussi comment dites-vous qu'il utilise SSLV2? Par défaut, Java 1.6 utilisera TLSV1. Il y a une capture ici, si vous activez Débogou SSL, vous pouvez voir le format SSLV2Hello étant utilisé, mais si vous fermez le look, le «protocole vésion» à l'intérieur de la couche d'enregistrement sera TLSV1 (Wrapper Informations de version 1.e sous forme SSLV2). L'analyse de capture de paquets de niveau TCP à l'aide de Wireshark devrait confirmer cela. Si vous souhaitez initier au format TLSV1, définissez uniquement https.protocols = TLSV1 (ceci peut affecter tous les appels SSL sortants) ou définir ce socket spécifique comme ci-dessus. Notez que même si votre liste séparée par des virgules (comme https.protocols = SSLV3, TLSV1), elle commencera par TLSV1. P>
Vérifiez blogs.oracle.com/java-platform-group/ientry/... " a>
Notez que Ce n'était pas vraiment un SSLV2 de toute façon , juste un SSLV3 (ou supérieur) encapsulé dans un SSLV2.