title: OpenLdap with SSL connection Failed
body: <p>i work in local with LinuxMint and have in virtualbox installed UbuntuServer with openldap. Now i configure folow this guide
  <a href="http://help.ubuntu-it.org/12.04/server/serverguide/it/ubuntu-1204-server.pdf" rel="nofollow">http://help.ubuntu-it.org/12.04/server/serverguide/it/ubuntu-1204-server.pdf</a>
  TLS/SSL auth, but when i try to connect with SSL from Java:</p>
  
  <pre><code>import java.io.UnsupportedEncodingException;
  import com.novell.ldap.LDAPConnection;
  import com.novell.ldap.LDAPException;
  import com.novell.ldap.LDAPJSSESecureSocketFactory;    
  
  public class GetAuthenticated    
  {    
      public static void main( String[] args ) {
          int ldapVersion   = LDAPConnection.LDAP_V3;
          int ldapPort      = LDAPConnection.DEFAULT_PORT;
          int ldapSSLPort   = LDAPConnection.DEFAULT_SSL_PORT;
          String ldapHost = "192.168.1.46";
          String loginDN = "cn=admin,dc=company,dc=com";
          String password = "secret";    
          LDAPConnection conn = new LDAPConnection();
  
          simpleBind1( conn, ldapHost, ldapPort, loginDN, password );
          SSLBind( ldapVersion, ldapHost, ldapSSLPort, loginDN, password );
          System.exit(0);
      }
  
      private static void simpleBind1(LDAPConnection conn, String host,
                                      int port, String dn, String passwd ) {
          try {    
              System.out.println("Simple bind...");    
              // connect to the server
              conn.connect( host, port );    
              // authenticate to the server
              try {
                  conn.bind( LDAPConnection.LDAP_V3, dn, passwd.getBytes("UTF8") );
              } catch (UnsupportedEncodingException u){
                  throw new LDAPException( "UTF8 Invalid Encoding",
                                           LDAPException.LOCAL_ERROR,
                                           (String)null, u);
              }
              System.out.println((conn.isBound()) ?
                  "\n\tAuthenticated to the server ( simple )\n":
                      "\n\tNot authenticated to the server\n");
                  // disconnect with the server
              conn.disconnect();
          }
          catch( LDAPException e ) {
              System.out.println( "Error: " + e.toString() );
          }
          return;
      }
  
      private static void SSLBind( int version, String host, int SSLPort, 
                                                     String dn, String passwd ) {
          // Set the socket factory for this connection only
          LDAPJSSESecureSocketFactory ssf = new LDAPJSSESecureSocketFactory();
          LDAPConnection  conn = new LDAPConnection(ssf);
          try {
              System.out.println("SSL bind...");
              // connect to the server
              conn.connect( host, SSLPort);
              // authenticate to the server with the connection method
              try {
                  conn.bind( version, dn, passwd.getBytes("UTF8") );
              } catch (UnsupportedEncodingException u){
                  throw new LDAPException( "UTF8 Invalid Encoding",
                                           LDAPException.LOCAL_ERROR,
                                           (String)null, u);
              }
              System.out.println((conn.isBound()) ?
                  "\n\tAuthenticated to the server ( ssl )\n":
                      "\n\tNot authenticated to the server\n");
              // disconnect with the server
              conn.disconnect();
          }
          catch( LDAPException e ) {
              System.out.println( "Error: " + e.toString() );
          }
          return;
      }
  }
  </code></pre>
  
  <p>simpleBind1 works fine, but SSLBind not and i have this error:</p>
  
  <pre><code>I/O Exception on host 192.168.1.46, port 636 (91) Connect Error
  PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
  </code></pre>