Im travaillant sur un client LDAP java et il me manque encore des informations ou des connaissances sur la façon de le faire correctement.Comment spécifier la version SSL/TLS sur une connexion Java LDAP?
Mon code ressemble à ceci:
LdapContext ctx = null;
Hashtable<String, String> env = new Hashtable <String, String>();
try{
env.clear();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "url");
env.put(Context.SECURITY_PRINCIPAL, "user");
env.put(Context.SECURITY_CREDENTIALS, "password");
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put("java.naming.security.ssl.ciphers", "SSL_RSA_EXPORT_WITH_RC4_40_MD5");
ctx = new InitialLdapContext(env, null);
} catch(NamingException nex) {
// error handling
}
Les choses suivantes se produisent au moment:
- Lors du débogage de la connexion ssl Je vois qu'une connexion TLSv1 est en cours d'établissement entre mon LDAP serveur et mon programme.
- Je vois ce qui suit pour mon serveur client & sur poignée de main ssl:
*** ClientHello, TLSv1.2
et*** ServerHello, TLSv1
Les choses que je me manque en ce moment:
- J'ai ajouté un chiffre à être inclus, mais Je ne le vois pas dans la liste des chiffrements supportés dans le message Hello de mon client
- Je n'ai pas spécifié que mon client offre TLS1.2 dans son message hello, d'où vient ce paramètre?
- Je voudrais être en mesure de déterminer moi-même si je veux utiliser TLS ou SSL et quelle version de TLS ou SSL va être utilisée, comment puis-je y parvenir? (Ainsi je peux par exemple seulement permettre TLS 1.1 1.2)
Comment visualisez-vous le ClientHello? Le clientHello affichera la liste des "suites de chiffrement" que le client connait, classées par préférence client, comme indiqué dans le registre: https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls -parameters-4 – jwilleke
J'utilise '-Djavax.net.debug = ssl: session' pour déboguer la connexion ssl dans Netbeans. Je peux voir la liste de chiffrement mais il n'inclut pas le chiffre que j'ai ajouté avec 'env.put (" java.naming.security.ssl.ciphers "," SSL_RSA_EXPORT_WITH_RC4_40_MD5 ");' ' – Alkahna
' SSL_RSA_EXPORT_WITH_RC4_40_MD5', sérieusement? Vous pouvez supprimer le cryptage. –