Bonjour,
J'ai développé une application en Java qui va chercher des informations sur un serveur en REST et qui récupère les informations en JSON avant de les traiter.
Mon serveur web est développé en PHP.
Jusque là mes connexions se faisaient en HTTP et ça marchait sans problème. On souhaite passer en HTTPS pour sécuriser le tout. J'ai donc acheté un certificat "officiel" (chez goDaddy), je l'ai installé sur mon serveur, pas de soucis.
Quand je me connecte à mon serveur avec firefox, pas de soucis, ma connexion est bien en HTTPS et ça fonctionne.
Dans mon java, j'ai modifié le code pour utiliser HttpsURLConnection sauf que j'ai une erreur quand j'essaie de me connecter :
J'ai fait une petite classe java pour tester et je ne comprend pas si je tente d'accéder à https://www.google.com/ pas de soucis, mais si j'essaie de me connecter à mon site https://monsite.monserver.com/ j'ai l'erreur ci dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching monsite.monserver.com found.
D'où ça vient ? Merci de votre aide.
Voici mon code pour tester (trouvé sur le web)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.security.cert.Certificate; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLPeerUnverifiedException; public class HttpsClient{ public static void main(String[] args) { new HttpsClient().testIt(); } private void testIt(){ String https_url = "https://www.google.com/"; URL url; try { url = new URL(https_url); HttpsURLConnection con = (HttpsURLConnection)url.openConnection(); //dumpl all cert info print_https_cert(con); //dump all the content print_content(con); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void print_https_cert(HttpsURLConnection con){ if(con!=null){ try { System.out.println("Response Code : " + con.getResponseCode()); System.out.println("Cipher Suite : " + con.getCipherSuite()); System.out.println("\n"); Certificate[] certs = con.getServerCertificates(); for(Certificate cert : certs){ System.out.println("Cert Type : " + cert.getType()); System.out.println("Cert Hash Code : " + cert.hashCode()); System.out.println("Cert Public Key Algorithm : " + cert.getPublicKey().getAlgorithm()); System.out.println("Cert Public Key Format : " + cert.getPublicKey().getFormat()); System.out.println("\n"); } } catch (SSLPeerUnverifiedException e) { e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } } } private void print_content(HttpsURLConnection con){ if(con!=null){ try { System.out.println("****** Content of the URL ********"); BufferedReader br = new BufferedReader( new InputStreamReader(con.getInputStream())); String input; while ((input = br.readLine()) != null){ System.out.println(input); } br.close(); } catch (IOException e) { e.printStackTrace(); } } } }
Partager