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
Je le stock dans mon KeyStore tout va bien.
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();
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 :
J'ai quelques questions :
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();
- 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
Partager