javax.net.le protocole ssl.SSLException: Reçu alerte fatale: bad_record_mac

Que je suis un "javax.net.le protocole ssl.SSLException: Reçu alerte fatale: bad_record_mac" pour une connexion https. Ce n'est pas le cas, chaque demande-si-je envoyer la même demande en 10 fois je ne reçois cette erreur une fois ou deux fois.

J'ai le code suivant pour valider le certificat:

TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }

            public void checkClientTrusted(X509Certificate[] certs, String authType) {
            }

            public void checkServerTrusted(X509Certificate[] certs, String authType) {
            }

        } };

        try {
            SSLContext sslContext = null;
                try {
                    sslContext = SSLContext.getInstance("SSLv3");

                } catch (NoSuchAlgorithmException e3) {
                    logException(Arrays.toString(e3.getStackTrace()));          
            }

            sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
            SSLSocketFactory factory = sslContext.getSocketFactory();
            HttpsURLConnection.setDefaultSSLSocketFactory(factory);
        } catch (KeyManagementException e) {
            logException(Arrays.toString(e.getStackTrace()));
        }

        //Create all-trusting host name verifier
        HostnameVerifier allHostsValid = new HostnameVerifier() {
            public boolean verify(String hostname, SSLSession session) {
                return true;
            }
        };
        //Install the all-trusting host verifier
        HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
        /*
         * end of the fix
         */ 

J'ai mis deux propriétés du système dans ma méthode principale:

System.setProperty("jsse.enableSNIExtension", "false");
        System.setProperty("https.protocols", "SSLv3");

Mais rien n'y fait.

s'il vous plaît aider!

Merci.

ihave définir la propriété déjà
BTW, si la cible est un seul serveur (c'est à dire pas d'équilibrage de la charge avec des objectifs différents), alors il ne correspond pas aux critères de ce bug: bugs.openjdk.java.net/browse/JDK-4615819 (ses dix ans mais n'a jamais été fixe sur le côté client). Mais je tenais à le mentionner comme un cas possible quand il y a un protocole SSL3-seul serveur... (ce qui ne devrait pas être le cas aujourd'hui!)

OriginalL'auteur Amith | 2014-03-11