>From: owner-openssl-us...@openssl.org On Behalf Of al so
>Sent: Monday, 04 June, 2012 14:48

>Does it look for client cert chain by default in the home dir? 
>Looks like it's due to mutual authentication setup?
        
s_client looks for client-auth key&cert only where you tell it 
using the commandline options -cert and/or -key. Use those.

s_client for client-auth (which is rare), like s_server for 
server-auth (which is common), can >send< only a single cert, 
not a full chain. If your client cert requires an intermediate 
below the trust anchor(s) on the server, it won't work. 
(Both s_client and s_server can >receive< a full chain.)

You can write a simple app using OpenSSL lib to send a chain, 
but since IIRC your actual goal is to get Java SOAP to work, 
you might be better off writing an even simpler Java app which 
connects SSL with the desired trust and auth, and disconnects 
without doing anything. If you use an explicit SSLContext 
and {Key,Trust}ManagerFactory, this is about 20 lines. 
If you change the defaults in your JRE -- or have already 
done so for the SOAP stuff -- it's about 5 lines.
        
>On Mon, Jun 4, 2012 at 4:24 AM, Eisenacher, Patrick
<patrick.eisenac...@bdr.de> wrote:
        
>       > From: al so

>       > openssl s_client -showcerts -connect <TP.COM>:443
>       > CONNECTED(00000003)
>       > depth=1 <snip>OU=VeriSign International Server CA - Class 3<snip>
>       > verify error:num=20:unable to get local issuer certificate
>       > verify return:0

Aside: this appears to be
https://knowledge.verisign.com/support/ssl-certificates-support/index?page=c
ontent&actp=CROSSLINK&id=AR1514 which should verify under 
Verisign's Class 3 Public Primary Certification Authority .
s_client looks for truststore using either -CAfile and/or -CApath options, 
or the OpenSSL library default which depends on the build you are using.
To fix this, add the verisign class3 root to your default truststore, 
or create (or find) a truststore containing it and specify that.

However, unlike most clients (including probably Java SOAP) 
s_client ignores the verify error and proceeds to:

>       > 16747:error:14094412:SSL routines:SSL3_READ_BYTES:sslv3 alert bad
certificate:s3_pkt.c:1093:SSL alert number 42
>       > 16747:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake
failure:s23_lib.c:188:
                
>       The error tells you that the server doesn't like your client cert
chain.  As such, 
>it sends a bad certificate alert. You should check the server's log for any
details.
                
In this case the server rejected s_client's lack of any cert (chain).


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

Reply via email to