> From: owner-openssl-us...@openssl.org On Behalf Of jason.ting
> Sent: Monday, 29 November, 2010 02:15

> >[server rejects client cert]. Look at the server CertReq to see 
> >if it is asking for particular CA(s) and if so whether the cert 
> >your client is using is issued by that CA (or one of them).
> >Also check whether it is directly under or chained;
> >if the latter I don't think commandline s_client can do it,
> >although a (custom) app using the library can.
> 
> I checked the server CertReq and from my little in depth knowledge of
> OpenSSL and the TLS protocol it looks like it is not request 
> for a specific
> certificate.
> 
> read from 0xa3efa8 [0xa459fd] (15 bytes => 15 (0xF))
> 0000 - 0d 00 00 07 04 03 04 01-02 00 00 0e               ............
> 000f - <SPACES/NULS>
> <<< TLS 1.0 Handshake [length 000b], CertificateRequest
>     0d 00 00 07 04 03 04 01 02 00 00
> <<< TLS 1.0 Handshake [length 0004], ServerHelloDone
>     0e 00 00 00
> 
Yes, that CertReq has CA(name)s empty, thus not specifying 
any particular CA(s) it wants you to use.

> The server certificate is chained but through my testing it 
> looks like it is
> verified ok from the logs below

SERVER cert isn't the problem.

> >Remember that the client's issuer may be different from 
> >the server's issuer (whatever is in verisignVB.pem).
> 
> In this case yes the client and server issuers are both different. The
> Server certificate was issued under verisign and the client 
> is a self signed
> certificate generated using OpenSSL
> 
See below.

> >Maybe their different client cert is under a different CA,
> >which the server does like. 
> 
> So in this case is the problem caused by the server not able 
> to verify the
> client certificate and hence rejecting the connection? Do I 
> just have to
> ensure that the server has the correct client CA?
> 
Yes, the server is rejecting the client cert because it 
doesn't 'know' (and trust) the client's issuing CA.

> I have also attached the entire debug message and i changed 
> the command a
> little to include the -verify depth.
> 
> C:\Documents and Settings\jason.ting.GHL\Desktop\CBA SSL 
> Testing>openssl
> s_client -verify 1 -connect 
> i2.paywide.nps.commbank.com.au:9001 -CAfile
> verisignV.crt -cert L2009080526.crt -key L2009080526.key -debug -msg
> http://old.nabble.com/file/p30328149/SSL%2BFail%2BLog.txt 
> SSL+Fail+Log.txt 
> 
According to that, your client cert isn't self-signed.
It is apparently signed by the same company, which isn't 
the same thing; in X.509 and SSL, self-signed means that 
the cert Subject and Issuer,and specifically the subject 
KEY and the issuing/signing KEY, are EXACTLY the same.

What you appear to have is your own 'private' or 'in-house' 
CA, which you used to sign a cert for your client.
(Which OpenSSL can do, in several slightly different ways.)

Either way, the server must trust the issuer of the client cert 
-- for a self-signed cert this is the client itself, and in your 
case it is an entity visibly CLOSE to the client.

commbank.com.au sounds like a bank, and if so I wouldn't be 
very optimistic they will trust you to be a CA. If not, 
you'll have to get a client cert from a CA they do trust.




______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to