[lug] self-signed ssl certs under CentOS

Michael J. Hammel mjhammel at graphics-muse.org
Fri Jan 27 09:34:54 MST 2017


Thanks for the feedback Lee.  Comments below.

On Fri, 2017-01-27 at 01:54 -0700, Lee Woodworth wrote:
> Check that your cert and ca-bundle.crt are in the same format,
> hopefully PEM:

It's PEM.

> If your certs are in PEM format and a grep of /etc/pki/tls/certs/ca
> -bundle.crt
> for text unique to your ca cert returns something, your ca cert may
> be getting
> rejected for not being configured as a ca certificate**. 

The grep showed my cert wasn't in /etc/pki/tls/certs/ca-bundle.crt. 
 Looking at the output you showed for openssl dump of the cert, I don't
have the Basic Constraints or Key Usage in my cert.  I generate it like
this:

openssl req -newkey rsa:2048 \
    -new -nodes -x509 -days 3650 \
    -subj "<...>" \
    -config $CONF \
    -extensions subject_alt_name \
    -keyout $KEY \
    -out $CERT

The -subj is filled in with the issue stuff.  Do you know if I should
be using any other options for the self-signed cert, like to gen the
Basic Constraints or Key Usage sections?

> You might look at
> easy-rsa for setting up a private PKI that can generate CA, server
> and client
> certs without too much work.
> 
> Otherwise concatenating your PEM encoded ca cert to ca-bundle.crt
> might work.

And that's what worked!  So the hack is just append the PEM to the ca
-bundle.crt.  It's not the right way, but it works.

Now I just need to figure out how to get the "process" to actually
cause that to happen (or whatever the "process" equivalent is).

Thanks!

> 
> HTH
> 
> -------------------------
> 
> ** $ openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -text
> ...
>     X509v3 Basic Constraints: critical
>         CA:TRUE
> ...
>     X509v3 Key Usage: critical
>         Certificate Sign, CRL Sign
> ...
> 
> On 01/26/2017 04:13 PM, Michael J. Hammel wrote:
> > Does anyone have a concise set of steps for dropping a self-signed
> > cert
> > in .pem format onto CentOS 7 so libCurl will use it?
> > 
> > I've tried following the directions for update-ca-trust by dropping
> > the
> > file in the following directories, one at time
> > 
> >    /etc/pki/ca-trust/source/anchors
> >    /etc/pki/ca-trust/source/
> >    /etc/pki/ca-trust/extracted/pem/
> > 
> > And then running
> > 
> >     update-ca-trust extract
> > 
> > after each.  Then I run a C client that uses libCurl, but I always
> > get
> > this:
> > 
> > * Initializing NSS with certpath: sql:/etc/pki/nssdb
> > *   CAfile: /etc/pki/tls/certs/ca-bundle.crt
> >   CApath: none
> > * Server certificate:
> > *       subject: CN=xxx,OU=xxx,O=xxx,L=Colorado
> > Springs,ST=Colorado,C=US
> > *       start date: Jan 26 22:51:10 2017 GMT
> > *       expire date: Jan 24 22:51:10 2027 GMT
> > *       common name: xxx
> > *       issuer: CN=xxx,OU=xxx,O=xxx,L=Colorado
> > Springs,ST=Colorado,C=US
> > * NSS error -8156 (SEC_ERROR_CA_CERT_INVALID)
> > * Issuer certificate is invalid.
> > 
> > (xxx are redacted fields).  The same cert works on Debian, which
> > has a
> > much simpler process: just drop the file in /etc/ssl/certs.  Does a
> > cert generated on Debian have to be regenerated on CentOS?   I
> > didn't
> > think so but who knows.
> > 
> 
> _______________________________________________
> Web Page:  http://lug.boulder.co.us
> Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
> Join us on IRC: irc.hackingsociety.org port=6667
> channel=#hackingsociety


More information about the LUG mailing list