SSLHandShakeException Aucun Protocole Approprié

J'ai récemment ajouté SSL pour mon site web et il peut être consulté via le protocole https. Maintenant, quand mon application java essaie de faire des demandes à mon site web et de lire avec un tampon lecteur il produit cette trace de la pile

Je ne suis pas à l'aide d'un certificat auto-signé le cert est de Namecheap qui utilise COMODO SSL que l'autorité de certification pour signer mon certificat. im en utilisant java 8

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.Handshaker.activate(Handshaker.java:503)
at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1482)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1351)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)

Mon code est très basique et tente tout simplement de lire la page sur mon site à l'aide d'un tampon lecteur

 private void populateDataList() {
    try {
        URL url = new URL("https://myURL.com/Data/Data.txt");
        URLConnection con = url.openConnection();
        con.setRequestProperty("Connection", "close");
        con.setDoInput(true);
        con.setUseCaches(false);

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String line;
        int i = 0;
        while((line = in.readLine()) != null) {
            this.url.add(i, line);
            i++;
        }
    }   catch (Exception e) {
        e.printStackTrace();
    }

}

Ive essayé d'ajouter mon certificat SSL à la JVM du fichier de stockage des clés et j'ai même tenté d'accepter tous les certificats (qui va à l'encontre de l'objectif de SSL je sais) avec ce code

 private void trustCertificate() {
    TrustManager[] trustAllCerts = new TrustManager[] {
            new X509TrustManager() {
                public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                    return new X509Certificate[0];
                }
                public void checkClientTrusted(
                        java.security.cert.X509Certificate[] certs, String authType) {
                }
                public void checkServerTrusted(
                        java.security.cert.X509Certificate[] certs, String authType) {
                }
            }
    };
    try {
        SSLContext sc = SSLContext.getInstance("TLS");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (GeneralSecurityException e) {
    }
    try {
        URL url = new URL("https://myURL.com/index.php");
        URLConnection con = url.openConnection();
        BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String line;
        while((line = br.readLine()) != null) {
            System.out.println(line);
        }

    } catch (Exception e) {

    }
}

Im perplexe et toute aide serait grandement appréciée!

  • Vous avez probablement besoin de fournir plus de détails. À l'aide d'un auto-signé cert je suppose? Quelle version de java?
  • Je ne suis pas à l'aide d'un certificat auto-signé le cert est de Namecheap qui utilise COMODO SSL que l'autorité de certification pour signer mon certificat. im en utilisant java 8
  • (1) Le cert a rien à voir avec cette erreur. (2) Êtes-vous à l'aide de la Sun/Oracle version de Java 8 et si oui, lequel mise à jour, ou quelques autres de Java? Avoir des changements de configuration, été fait dans la JRE surtout dans le fichier $JRE/lib/security/java.security? (3) avez-vous des propriétés du système de jeu de invoving https surtout https.protocols? (4) Essayez de courir avec sysprop javax.net.debug=ssl et d'afficher le résultat, sauf si votre truststore a beaucoup de certs (qui par défaut) vous pouvez hacher la partie à un minimum.
  • Veuillez indiquer la version de Java que vous utilisez. si vous ajoutez -Djavax.net.debug=ssl:handshake:verbose il vous permettra d'examiner la poignée de main question plus en détail.