tomcat - Client certificate is not sent to server -


i trying set two-way ssl authentication soap web-service running on jboss 4.2.3. have created ca purpose root ca , 2 intermediate ca-s (development , production environments).

however trying test setup client certificate signed 1 of intermediate ca-s, have run problems.

the server set root ca in jvm-s cacerts keystore , relevant intermediate ca in keystore used tomcat connector truststore. complete connector config following:

<connector port="443" address="${jboss.bind.address}"            protocol="http/1.1" sslenabled="true"            maxthreads="150" scheme="https" secure="true"            clientauth="true" sslprotocol="tls"            keystorefile="keystore.p12"            keystorepass="******" keystoretype="pkcs12"            emptysessionparth="true" enablelookups="false" acceptcount="100"            truststorefile="truststore.jks"            truststorepass="******" truststoretype="jks"            disableuploadtimeout="true" /> 

connecting openssl s_client can see, "acceptable client certificate ca names" lists our intermediate ca. providing correct client certificate , key in -cert , -key options. far can understand openssl output, certificate never sent. tried concatenating client certificate, intermediate , root ca single pem file, present entire chain, didn't either.

the s_client command line following:

openssl s_client -host localhost -port 443 -cert client_cert.crt -key client_key.key -capath /etc/ssl/certs/ -debug -state 

the same behaviour observerd when try test service google chrome , relevant certificates installed in windows. wireshark output looks same - certificate requested, correct acceptable ca presented, browser never gives me choice of certificate , empty client certificate message sent server.

so question - missing here? have assumed acceptable ca list should used client decide certificates send, making decision go otherwise , no certificate sent. again assuming, server configured correctly, because expected ca sent in negotiation, missing on client side?

edit:

as requested @bruno, looked @ key usage of certificates. used client certificate gives followin information when printed openssl x509 -noout -text -in client.cer

        x509v3 basic constraints: critical             ca:false         x509v3 key usage: critical             .....         x509v3 extended key usage:              tls web client authentication 

looking @ - empty key usage field seems culprit. values should there? can't seem figure out phrase google such information. i'll have @ ca management software then.

thanks hint given @bruno, investigated key usage part of client certificates. turns out, generating certificates empty key usage attribute.

i have configured our ca management software generate certificates followin key usage/extended key usage attributes. confess don't understand, each of these does, made system work now. have not added potentially dangerous here.

        x509v3 key usage: critical             digital signature, non repudiation, key encipherment, data encipherment, key agreement         x509v3 extended key usage:             tls web client authentication 

after googling around information key usage bits, stumbled upon this question explained things somewhat.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -