Re: File format for SSL CRL file

Lists: pgsql-docspgsql-hackers
From: Greg Smith <greg(at)2ndquadrant(dot)com>
To: pgsql-docs(at)postgresql(dot)org
Subject: File format for SSL CRL file
Date: 2012-07-03 00:30:07
Message-ID: 4FF23D0F.80403@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs pgsql-hackers

A documentation comment came in recently about ssl-tcp.html not
specifying what format is expected for the CRL file. Seems like
something that could be described better now that I look at it, so I'm
passing that along with just wording edits from me; this is from user
"oneironautics":

The root.crl needs to be in PEM (and not DER) format. If a certificate
file exists but is the wrong type, you will be told it cannot find the
file when it exists, with this sort of error in the log:

LOG: SSL certificate revocation list file "root.crl" not found,
skipping: no SSL error reported
DETAIL: Certificates will not be checked against revocation list.

This error can be reported even though you have a root.crl file in
$PGDATA along with the private key and server/root certificates. A
quick check using openssl revealed that the unused CRL file in this
example was indeed in DER format. Converting the certificate to the PEM
format rectified the error:

cd $PGDATA
openssl crl -inform der -in root.crl -outform pem -out root-new.crl
mv root-new.crl root.crl


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Greg Smith <greg(at)2ndquadrant(dot)com>
Cc: Pg Docs <pgsql-docs(at)postgresql(dot)org>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: File format for SSL CRL file
Date: 2012-07-03 02:44:00
Message-ID: 1341283155-sup-42@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs pgsql-hackers


Excerpts from Greg Smith's message of lun jul 02 20:30:07 -0400 2012:
> A documentation comment came in recently about ssl-tcp.html not
> specifying what format is expected for the CRL file. Seems like
> something that could be described better now that I look at it, so I'm
> passing that along with just wording edits from me; this is from user
> "oneironautics":
>
> The root.crl needs to be in PEM (and not DER) format. If a certificate
> file exists but is the wrong type, you will be told it cannot find the
> file when it exists, with this sort of error in the log:
>
> LOG: SSL certificate revocation list file "root.crl" not found,
> skipping: no SSL error reported

HEAD is different in this area -- it dies with a FATAL instead of just
skipping it.

Also, the error message seems rather poor. Maybe the code should call
X509_STORE_CTX_get_error() instead of SSLerrmessage (which calls
ERR_get_error; apparently not the right thing to do).

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Greg Smith <greg(at)2ndquadrant(dot)com>, Pg Docs <pgsql-docs(at)postgresql(dot)org>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: File format for SSL CRL file
Date: 2012-07-03 08:01:02
Message-ID: CABUevEzqmvxzrZakm4BwECPXDw2ZMHoj0AJKxUS5M=5OybEynA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs pgsql-hackers

On Tuesday, July 3, 2012, Alvaro Herrera wrote:

>
> Excerpts from Greg Smith's message of lun jul 02 20:30:07 -0400 2012:
> > A documentation comment came in recently about ssl-tcp.html not
> > specifying what format is expected for the CRL file. Seems like
> > something that could be described better now that I look at it, so I'm
> > passing that along with just wording edits from me; this is from user
> > "oneironautics":
> >
> > The root.crl needs to be in PEM (and not DER) format. If a certificate
> > file exists but is the wrong type, you will be told it cannot find the
> > file when it exists, with this sort of error in the log:
> >
> > LOG: SSL certificate revocation list file "root.crl" not found,
> > skipping: no SSL error reported
>
> HEAD is different in this area -- it dies with a FATAL instead of just
> skipping it.
>

Yes, and if somebody forgot, that was an intentional change :)

Also, the error message seems rather poor. Maybe the code should call
> X509_STORE_CTX_get_error() instead of SSLerrmessage (which calls
> ERR_get_error; apparently not the right thing to do).
>
>
I don't see how that would work - X509_STORE_CTX_get_error() takes an
X509_STORE_CTX as parameter ,and we don't have one of those.

And unfortunately the function we use to load the store seems to be
undocumented, so it's hard to know what we're supposed to use..

(I do agree we should try to figure out a better error message, of course..)

//Magnus

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Greg Smith <greg(at)2ndquadrant(dot)com>
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: File format for SSL CRL file
Date: 2012-07-03 19:20:50
Message-ID: 1341343250.21530.23.camel@vanquo.pezone.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs pgsql-hackers

On mån, 2012-07-02 at 20:30 -0400, Greg Smith wrote:
> The root.crl needs to be in PEM (and not DER) format. If a
> certificate file exists but is the wrong type, you will be told it
> cannot find the file when it exists, with this sort of error in the
> log:

Could we instead fix it to accept both formats? (Documenting it would
still be worthwhile, of course.)