On 22/03/2011 09:24, Crypto Sal wrote:
Me thinks they don't understand Client Authentication/Digital Certificates. The server doesn't typically need to verify up to the root, they provide a list of acceptable client CA names during the handshake.

I'm using a CAfile that has all of the certificates in - as far as I am aware that makes openssl trust these certificates.


Do you have them in reverse hierarchy when using '-CAfile' ?(Intermediate(s) to Root) I have seem some systems/programs flip out because certificates were out of order.

Yes, they are in the usual order, with root as the final cert.

My thoughts...

When you connect using 's_client' do you use something similar to the following?

`openssl s_client -connect FQDN:PORT -cert CERT_FILE -key KEY_FILE -CAfile yourCAfile`

Have you tried just to connect to the site without the '-cert', '-key' and/or '-CAfile' and see if any useful information is presented by the server or does the connection fail outright?

Without the -CAfile then the connection to the server fails at the server certificate stage (self-signed cert). With the CAfile but without cert/key then the connection fails at the same point as if the cert/key had been provided.


Based on the error of 'SSL alert number 80', that you have provided previously, I suspect the problem is with your certificate's (client cert) issuing CA being unknown to the server (one that it doesn't directly trust and you need an appropriate hierarchy)

Those running the server are the ones that signed the client certificate and provided the CA and Root certificates that are in use.

== Info: SSLv3, TLS handshake, Server finished (14):
<= Recv SSL data, 4 bytes (0x4)
0000: 0e 00 00 00                                     ....
== Info: SSLv3, TLS handshake, Client key exchange (16):
=> Send SSL data, 102 bytes (0x66)
0000: 10 00 00 62 00 60 45 1d e4 bd 03 4e bb 10 f1 04 ...b.`E....N....
0010: 72 4f 1f 2d 0e ea 7d d4 37 ee 4b a0 3f 27 33 26 rO.-..}.7.K.?'3&
0020: 33 10 06 82 4b 66 c0 ca aa 14 68 6a f8 00 0d 89 3...Kf....hj....
0030: 17 92 4e ed 84 eb 82 52 e8 59 39 fe 81 4b 7c 10 ..N....R.Y9..K|.
0040: e7 db 6e 54 2c 4e de 34 ff 8f 11 8e 5d 3e 5d e3 ..nT,N.4....]>].
0050: 41 09 b4 06 36 78 cd 4b 33 c2 ce e4 06 a4 19 97 A...6x.K3.......
0060: 5d bf 88 69 02 c8                               ]..i..
== Info: SSLv3, TLS change cipher, Client hello (1):
=> Send SSL data, 1 bytes (0x1)
0000: 01                                              .
== Info: SSLv3, TLS handshake, Finished (20):
=> Send SSL data, 16 bytes (0x10)
0000: 14 00 00 0c 94 4e 6d 82 d8 f2 8b a0 0f 30 61 b3 .....Nm......0a.
== Info: SSLv3, TLS alert, Server hello (2):
<= Recv SSL data, 2 bytes (0x2)
0000: 02 50                                           .P
== Info: error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error
== Info: Closing connection #0

I don't think they list any specific ca as part of the client cert requests, I think they rely on the client providing a full certificate chain and they then validate that using some other method. It seems that for some reason openssl is not sending any certificate to them.

This seems to be something specific to TLS1.1 - see:

http://lists.foaf-project.org/pipermail/foaf-protocols/2009-February/000264.html

Is this behaviour that is not supported by openssl, or am I going down the wrong track (again...)



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

Reply via email to