[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Using "keytool" to create security certificates for OpenLDAP



Thanks Jon. This helps. I do have a few more questions that are
related to OpenLDAP:

1) I'm on a Windows machine, and in the OpenLDAP installation
directory ("c:\Program Files\OpenLDAP"), I actually see several "SSL"
related files. Could you tell me which is which, and which I should
add to the truststore on the client?
- serverkey.pem
- server.pem
- CA.pem
- cakey.pem
- ca.srl

2) I actually tried adding "server.pem" to my client's truststore
using keytool, and it seems that it got added (it gets listed with the
-list option), but when I do the following with JLDAP to conenct to
the OpenLDAP server, I get an LDAPException with a root message:
"sun.security.validator.ValidatorException: No trusted certificate
found".
           ...
           ...
        if (this.useSSL) {
            System.setProperty("javax.net.ssl.truststore",
"C:\\client\\truststore.jks");
            LDAPSocketFactory sslSocketFactory = new
LDAPJSSESecureSocketFactory();
            LDAPConnection.setSocketFactory(sslSocketFactory);
        }
        this.masterConnection = new LDAPConnection();

        try {
            this.masterConnection.connect(host, port);
            this.masterConnection.bind(LDAPConnection.LDAP_V3,
this.loginDN, passwd);
        } catch (LDAPException e) {
            throw new InitializationException(e); // This is what I
get every time
        }

How do I solve this problem? Any ideas?

Thanks in advance :)

Safdar



On Fri, 25 Mar 2005 09:54:45 -0600, Jon Roberts <jon@jonanddeb.net> wrote:
> Safdar Kureishy wrote:
> > - Enable SSL on OpenLDAP (and all the certs/keys etc.)
> > [I've got this done via the installer itself and it works using the
> > ldapbrowser/editor tool that I downloaded online]
> 
> So I'll assume this is all okay, although you may also want to check
> with an OpenLDAP client like ldapsearch.
> 
> > - Create a truststore on the JLDAP (client) side and add the OpenLDAP
> > server certificate to that truststore. I'm also hoping that this task
> > can be automated with Ant or as part of an installer given the
> > location of the certiciate file that is to be trusted.
> > [I'm at a loss as to what tool to use to generate the client-side
> > truststore and add the server-side certificate to it. Basically I'm
> > looking for a some instructions.]
> 
> Creating and installing a client side store is really a Java question,
> but here's the easiest thing to do. Your client JRE should have a
> default keystore where it checks for CA certs. Assuming you are using a
> *nix environment and your JAVA_HOME is '/usr/java', the command for
> adding your own CA cert would be something like:
> 
> /usr/java/bin/keytool -import -alias localca -keystore
> /usr/java/jre/lib/security/cacerts -trustcacerts -file
> /path/to/your/localcacert.pem
> 
> You'll be prompted for a keystore password, which by default is
> 'changeit' (hint, hint) for the cacerts keystore.
> 
> Again, keystores are a Java topic which can be explained better on a
> Java forum. The keytool man page is also useful.
> 
> Hope this helps.
> 
> Jon Roberts
> www.mentata.com
>