Vitaliyi wrote:
> I'm trying to setup SSL auth.
> 
> creating CA:
> 
> openssl genrsa -out our.key 2048
> openssl req -new -key our.key -out our.req
> openssl req -x509 -in our.req -text -key our.key -out root.crt
> 
> then I copy root.crt on postgresql host and to client host in 
> ~/.postgresql
> 
> generating another key on server:
> 
> openssl genrsa -out server.key 2048
> then request for signing to CA:
> openssl req -new -key server.key -out server.req
> 
> signing on CA:
> 
> openssl req -x509 -in server.req -text -key our.key -out server.crt
> 
> now in postgresql data dir following files:
> 
> server.crt
> server.key
> root.crt
> and blank root.crl
> 
> on client host:
> 
> cd ~/.postgresql
> openssl genrsa -out postgresql.key 2048
> then signing with our.key on CA and placing postgresql.crt, root.crt
> to ~/.postgresql
> 
> 
> This is my picture of what is happening:
> 
> 1. we using our CA public key to generate root.crt:
> 
> root_signature = ca_pub_key**ca_priv_key % n
> 
> 2. on postgres server creating key-pair and signing public key on CA, 
> receiving
> server_signature (server.crt):
> 
> server_signature = server_pub_key**root_priv_key % n
> 
> Client using server_signature before encrypting and sending message to server:
> 
> server_pub_key = server_signature**root_pub_key % n
> 
> if server_pub_key is valid then user encrypting message with server_pub_key.
> 
> 
> 3. Client generating his own key-pair and asking our CA to 
> sign his public key.
> 
> client_signature = client_pub_key**ca_priv_key % n
> 
> client_signature he writing to postgresql.crt, which server using when 
> sending something
> to client:
> 
> client_pub_key = client_signature**root_pub_key % n
> 
> 
> If everything is correct, than why psql complaining:
> 
> psql "dbname=me sslmode=require host=postgres_server user=me"
> psql: SSL error: certificate verify failed
> 
> log on postgres_server:
> 
> postgres[98462]: [3-1] LOG:  could not accept SSL connection: tlsv1
> alert unknown ca

I could not follow completely, so let me ask:

- Did you put the same thing in root.crt on both client and server?
- Does root.crt contain a self signed certificate?
- Does root.crt contain the certificate that was used to sign server.crt and 
postgresql.crt?
- Are there any SSL messages in the server log file immediately after server 
startup?

Yours,
Laurenz Albe

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to