Re: JDBC with SSL - Mailing list pgsql-jdbc

From Barry Lind
Subject Re: JDBC with SSL
Date
Msg-id 3E84995A.8020706@xythos.com
Whole thread Raw
In response to Re: JDBC with SSL  ("John Laban" <johnl@infotn.com>)
List pgsql-jdbc
John,

I have done this before, but I don't remember the exact steps.  Java is
very particular about the formats of certs it accepts.  I ended up doing
a google search and found some good instructions on how to get java to
import an openssl created cert.  Unfortunately I didn't keep those
instructions.

--Barry


John Laban wrote:
> Hello again,
>
> I have made numerous attempts to import the certificate from the server to
> the client machine using java keytool with no success - the keytool
> complains that the file is not a valid X.509 format.
>
> Additionally, for my application, only the encryption of the channel is
> important so if it is possible to create an ssl connection without the
> authentication portion that would be the best solution.
>
>
> However I would still appreciate any information on how to import the
> certificate (as generated using the Postgresql documention) into the java
> certificate store.
>
>
>
> ----- Original Message -----
> From: "Barry Lind" <blind@xythos.com>
> To: "John Laban" <johnl@infotn.com>
> Cc: <pgsql-jdbc@postgresql.org>
> Sent: Friday, March 28, 2003 11:11 AM
> Subject: Re: [JDBC] JDBC with SSL
>
>
>
>>John,
>>
>>The error message indicates that your client doesn't trust the servers
>>certificate.  My guess is that you are using a self-signed certificate
>>on the server.  If you want to be able to connect you are going to need
>>to import that certificate into the client side java certificate store
>>so that it recognizes the self-signed certificate as valid and trusted.
>>
>>thanks,
>>--Barry
>>
>>
>>John Laban wrote:
>>
>>>Thanks for the quick reply, but I'm still having some difficulty.
>>>
>>>I have been trying to connect to postgresql (redhat version 7.2.3.1)
>
> using
>
>>>JDBC and SSL - I am using the 7.4 development driver.
>>>
>>>I know that the server side is set up correctly because when connecting
>>>using psql the connection is established using SSL.
>>>
>>>
>>>However when connecting via JDBC I receive
>>>
>>>
>>>
>>>
>>>PostgreSQL 7.4devel JDBC3 with SSL (build 204)
>>>
>>>    ssl = true
>>>
>>>    compatible = 7.4
>>>
>>>    loglevel = 2
>>>
>>>Asking server if it supports ssl
>>>
>>>Server response was (S=Yes,N=No): S
>>>
>>>server does support ssl
>>>
>>>converting regular socket connection to ssl
>>>
>>>
>>>
>>>            at org.postgresql.core.PGStream.flush(PGStream.java:364)
>>>
>>>            at
>>>
>
> org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Con
>
>>>nection.java:269)
>>>
>>>            at org.postgresql.Driver.connect(Driver.java:137)
>>>
>>>            at
>
> java.sql.DriverManager.getConnection(DriverManager.java:512)
>
>>>            at
>
> java.sql.DriverManager.getConnection(DriverManager.java:140)
>
>>>            at docextractor.test.main(test.java:35)
>>>
>>>
>>>Exception: An I/O error has occured while flushing the output -
>
> Exception:
>
>>>javax.net.ssl.SSLHandshakeException:
>>>java.security.cert.CertificateException: Couldn't find trusted
>
> certificate
>
>>>Stack Trace:
>>>
>>>
>>>
>>>javax.net.ssl.SSLHandshakeException:
>>>java.security.cert.CertificateException: Couldn't find trusted
>
> certificate
>
>>>            at
>
> com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(DashoA6275)
>
>>>            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA6275)
>>>
>>>            at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>>>
>>>            at
>>>com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
>>>
>>>            at
>>>java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:69)
>>>
>>>            at
>>>java.io.BufferedOutputStream.flush(BufferedOutputStream.java:127)
>>>
>>>            at org.postgresql.core.PGStream.flush(PGStream.java:360)
>>>
>>>            at
>>>
>
> org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Con
>
>>>nection.java:269)
>>>
>>>            at org.postgresql.Driver.connect(Driver.java:137)
>>>
>>>            at
>
> java.sql.DriverManager.getConnection(DriverManager.java:512)
>
>>>            at
>
> java.sql.DriverManager.getConnection(DriverManager.java:140)
>
>>>            at docextractor.test.main(test.java:35)
>>>
>>>
>>>Caused by: java.security.cert.CertificateException: Couldn't find
>
> trusted
>
>>>certificate
>>>
>>>
>>>            at
>>>com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.a(DashoA6275)
>>>
>>>            at
>>>
>
> com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(DashoA6
>
>>>275)
>>>
>>>            at
>>>
>
> com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(DashoA6
>
>>>275)
>>>
>>>            ... 15 more
>>>
>>>
>>>End of Stack Trace
>>>
>>>
>>>
>>>
>>>
>>>At the server side I get
>>>
>>>
>>>
>>>Failed to inititalize SSL Connection: sslv3 alert certificate unknown
>>>(Success)
>>>
>>>
>>>
>>>
>>>I have not been able to find any clear resolutions to this problem. If
>>>someone can shed some light on a solution to this problem it would be
>>>greatly appreciated.
>>>
>>>
>>>
>>>----- Original Message -----
>>>From: "Barry Lind" <blind@xythos.com>
>>>To: "John Laban" <johnl@infotn.com>
>>>Cc: <pgsql-jdbc@postgresql.org>
>>>Sent: Thursday, March 27, 2003 5:58 PM
>>>Subject: Re: [JDBC] JDBC with SSL
>>>
>>>
>>>
>>>
>>>>John,
>>>>
>>>>This hasn't yet made it to the documentation.
>>>>
>>>>but adding ?ssl to the url should be what you need.  (also consider
>>>>using &loglevel=2 to turn on debugging info).
>>>>
>>>>--Barry
>>>>
>>>>John Laban wrote:
>>>>
>>>>
>>>>>Hello,
>>>>>
>>>>>The newest developement JDBC drivers (7.4dev, build 204, 2003-03-23)
>
> say
>
>>>they include support for SSL.  I can set up the server to use SSL, but I
>>>can't seem to get the JDBC driver to actually connect using SSL.  Is
>
> there
>
>>>any documentation on this?  Or is there a specific parameter I am
>
> supposed
>
>>>to include in the connection URL?
>>>
>>>
>>>>>Any help in this would be appreciated.
>>>>>
>>>>>John Laban
>>>>>
>>>>
>>>>
>>>>---------------------------(end of broadcast)---------------------------
>>>>TIP 5: Have you checked our extensive FAQ?
>>>>
>>>>http://www.postgresql.org/docs/faqs/FAQ.html
>>>
>>>
>>>
>>>---------------------------(end of broadcast)---------------------------
>>>TIP 6: Have you searched our list archives?
>>>
>>>http://archives.postgresql.org
>>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 6: Have you searched our list archives?
>>
>>http://archives.postgresql.org
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


pgsql-jdbc by date:

Previous
From: Csaba Nagy
Date:
Subject: Re: JDBC with SSL
Next
From: "Nagy Istvan"
Date:
Subject: Re: JDBC with SSL