Bonsoir,
J'ai comme objectif de récupérer le certificat (CA) d'un serveur et de le vérifier afin de l'authentifier puis de lui envoyer mon propre certificat (auto signer) pour qu'il puisse authentifier mon client et bien sûr tout ceci de manière sécurisé (https).
J'ai trouvé sur .apache.org un bout de code pour les connections SSL/TLS, mais je ne comprend pas comment pour pourrais récupérer puis envoyer les différentes les informations de mes certificats.
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 TrustManager easyTrustManager = new X509TrustManager() { @Override public void checkClientTrusted( X509Certificate[] chain, String authType) throws CertificateException { // Oh, I am easy! } @Override public void checkServerTrusted( X509Certificate[] chain, String authType) throws CertificateException { // Oh, I am easy! } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }; SSLContext sslcontext = SSLContext.getInstance("TLS"); sslcontext.init(null, new TrustManager[] { easyTrustManager }, null); SSLSocketFactory sf = new SSLSocketFactory(sslcontext); SSLSocket socket = (SSLSocket) sf.createSocket(); socket.setEnabledCipherSuites(new String[] { "SSL_RSA_WITH_RC4_128_MD5" }); HttpParams params = new BasicHttpParams(); params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000L); InetSocketAddress address = new InetSocketAddress("locahost", 443); sf.connectSocket(socket, address, null, params);
Partager