Bonjour à tous

Je travail en ce moment sur un projet utilisant la java security api JSSE
Pour faire court, je souhaite :
- me connecter à un site de façon sécurisée
- me loger
- récupérer des informations auxquelles je n'ai accès que sur mon compte comme des factures ou autres

Lorsque j'utilise la façon par défaut pour me connecter au site j'arrive à récupérer le certificat du site. Voici le bout de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
		SSLSocketFactory sfTemp = (SSLSocketFactory) SSLSocketFactory.getDefault();
	    SSLSocket sTemp = (SSLSocket) sfTemp.createSocket(host, port);
	    SSLSession sslSessionTemp = sTemp.getSession();
	  //  Utils.afficheCertif(sslSessionTemp.getPeerCertificates()[0]);
	    sTemp.close();
Je le stock dans mon KeyStore tout va bien.

Lorsque j'utilise ma façon un peu plus personnel j'ai des problèmes de pour récupérer le certificat du site. Voici mon bout de code :

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
 
 
		// keystore personnel il n'y a rien dedans 
		ks = keytoreUtils.initKeystore();
 
		// creation de la paire de cle
		KeyPair mykey = utils.createKeyPair();
		// Creation du certificat Ã* partir de la paire de clé (certificat autosigné)
		X509Certificate cert = utils.generateCertV3ForTimeStamping("kimlaw95",
				"DevLab", "kimlaw95Corp", "Montpellier", "Languedoc-R", "FR",
				"abc@abc.com", 100, mykey.getPublic(), mykey.getPrivate(),
				"SHA1withRSA");
		ks.setCertificateEntry("kimlaw95", cert);
		ks.setCertificateEntry("sfrCert", Utils.getCertificateFrom(Utils._sfrIp, 443));
 
		KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509","SunJSSE");
		kmf.init(ks, keytoreUtils.getPasswordKeyStore());
		KeyManager[] tabKeyManager = kmf.getKeyManagers();
 
		TrustManagerFactory tmf = TrustManagerFactory.getInstance("SUNX509");
		tmf.init(ks);
		TrustManager[] tabTrustedManager = tmf.getTrustManagers();
 
		sslContext = SSLContext.getInstance("SSL");
		sslContext.init(tabKeyManager, tabTrustedManager,new java.security.SecureRandom());
		SSLSocketFactory sslFactory = sslContext.getSocketFactory();
		SSLSocket s = (SSLSocket) sslFactory.createSocket(Utils._sfrIp, 443);
		SSLSession sslSession = s.getSession();
 
		s.startHandshake();
J'ai quelques questions :
- pour la ligne : SSLSocketFactory sfTemp = (SSLSocketFactory) SSLSocketFactory.getDefault();
il y a bien utilisation de KeyStore , de TrustStore etc... ??? Ou sont-ils configurer ?
- Est ce que la récupération du certificat du site signifie que nous somme connecter de façon sécurisé au site ?
- Le fait que mon certificat ne soit pas signé par une autorité de certification reconnue peut poser des problèmes ?
- Quels éléments(propriétés à configurer, certificats à mettre ou? signé par qui ?) faut-il configurer pour se connecter sur un site sécurisé.

J'ai conscience que ce post est long mais ça fait une semaine que je boss dessus et je commence à perdre espoir
j'ai besoin d'un petit coup de pousse

Merci