Bonjour,

Je suis à la recherche de codes ou de tutoriels pour gérer une authentification client et serveur.

  1. Récupérer et Verifier les infos d'un certificat venant de mon serveur (signer par une CA comme Verisign)
  2. Envoyer mon certificat client (auto-signer) au serveur pour l'authentification du client


En faisant des recherches, j'ai trouvé un code ainsi que plusieurs classe en rapport avec les certificats ou des connexions sécurités TLS


# javax.net.ssl
# javax.security.auth
# javax.security.auth.callback
# javax.security.auth.login
# javax.security.auth.x500
# javax.security.cert

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
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
 
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.X509TrustManager;
 
private void trustEveryone() {
        try {
                HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier(){
                        public boolean verify(String hostname, SSLSession session) {
                                return true;
                        }});
                SSLContext context = SSLContext.getInstance("TLS");
                context.init(null, new X509TrustManager[]{new X509TrustManager(){
                        public void checkClientTrusted(X509Certificate[] chain,
                                        String authType) throws CertificateException {}
                        public void checkServerTrusted(X509Certificate[] chain,
                                        String authType) throws CertificateException {}
                        public X509Certificate[] getAcceptedIssuers() {
                                return new X509Certificate[0];
                        }}}, new SecureRandom());
                HttpsURLConnection.setDefaultSSLSocketFactory(
                                context.getSocketFactory());
        } catch (Exception e) { // should never happen
                e.printStackTrace();
        }
}
J'espère que quelqu'un pourra m'orienter. Je nage un peu dans le domaine et j'ai un peu de peine à voir quel classe peut m'aider dans quel situation.

Bonne journée, Palopalo