thanks dave and martin. with all that information i think i should start
the process again. Do you have some materials that have step by step
process of configuring two way connections


On Fri, Jan 10, 2014 at 7:30 AM, Dave Thompson <dthomp...@prinpay.com>wrote:

> > From: owner-openssl-users On Behalf Of Martin Hecht
> > Sent: Thursday, January 09, 2014 11:54
>
> Generally good explanation, but a few quibbles:
>
> > I don't know what exactly you are doing, so it is difficult to speculate
> > why you are receiving code 19.
> >
> > Some information is exchanged during establishment of the ssl
> > connection. For example if you have a web server and a browser, the web
> > server shows the host certificate to the browser and the browser has to
> > verify it. Browsers don't have all certificates in their certificate
> > store, but they have the trusted root-CA certs. So it is up to the web
> > server to deliver the whole chain (including the sub-CA certificates).
> > Then, the browser checks, if the host certificate matches the hostname,
> > if the host certificate is issued by the intermediate CA, if the
> > intermediate CA cert is issued by a superior CA, and so on, until it
> > finds a self-singed CA certificate. That's the root CA certificate. Now,
> > the browser checks if that particular rootCA certificate is among the
> > ones the browser has configured as trusted root-CAs. In order to quickly
>
> Mostly concur, although I would say 'sends' instead of vague 'shows' or
> conclusive 'delivers'. And openssl to date can only configure roots
> as trusted, but (most?) other browsers and clients can have non-root
> trust 'anchors' configured and it has been stated openssl 1.0.2 will
> add that capability. Also it is possible for certs to specify a way
> (AIA.caIssuers) for the client to fetch chain cert(s) even if
> the server doesn't send them, but I don't think this is much
> implemented yet and certainly not by openssl. So a public server
> should send the full chain except optionally root; a server that
> only handles limited clients might not need to.
>
> > find the correct file in the directory, it calculates the hash on the
> > certificate's subject and looks for such a file. If it finds one and it
>
> openssl by default supports both a directory containing cert files
> (and CRL files if used) named by the subject (resp. issuer) hash
> plus a suffix, AND a single file containing a series of certs (and CRLs).
> The latter is a little easier to set up, and the OP might try it instead.
> Also, probably not an issue this time but openssl 1.0.0 changed the
> name-hash algorithm, so in some situations you need to re-hash.
>
> > is the same certificate, then it has successfully verified the chain and
> > verified that the CA is trustworthy. There are some more advanced things
> > like checking that none of the certificates has expired, that the
> > revocation lists are up to date and the certificates have not been
> > revoked, but I'd ignore this for the moment.
> >
> Since those wouldn't lead to error 19 (although some of them,
> particularly as I recall AKI and KU, can lead to error 20).
>
> > In your case all certificates have been found (either in a local
> > directory or they have been transmitted during establishment of the
> > connection), but the last step to find the rootCA certificate among the
> > trusted certificates did not succeed. It could as well be that your
> > application has its own certificate store (like Mozilla browsers or
> > Tomcat web server for instance).
> >
> Mozilla uses NSS, IE uses the Windows store as does Chrome on Windows,
> I believe Chrome on Mac and Safari use MacOS something, Tomcat/JSSE
> uses a Java store. But Tomcat/APR uses openssl, (nearly) like httpd.
> I don't know of any web browser that uses libssl, although it's possible.
> (maybe lynx? curl and I think wget do, if you count those.) Some SSL
> clients for non-web services do use openssl.
>
> <snip earlier>
>
> But the OP mentioned "two way connection", which may be intended
> to mean client authentication, often called mutual authentication or
> two-way authentication, in which case her problem could be on the
> client->server direction instead. If so the same principles apply in
> reverse:
> the client should be configured to send the chain and the server if openssl
> must have in its truststore at least the root used by the client.
>
> Although if there is only one or a few servers that you control, you may
> prefer to put chain cert(s) needed by the clients in the server
> truststore(s)
> which openssl will use rather than (re)configure a large number of clients.
>
>
>
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
>

Reply via email to