Ah. No, our client cert is signed by a self-signed root. But only the client cert is in the keystore and only the client cert is registered on the Datapower server. I can connect using the same keystore with a standalone Java client that just opens a URL connection and input stream, and also with SoapUI as a client. But not with our client app deployed in Tomcat.
Regards, Diarmuid On 1 Sep 2015 22:23, <jeffery.scott.cr...@gmail.com> wrote: > I'm referring to when a certificate is a combo such as a GoDaddy g1_g2 > root. The intermediate is usually fine. > > Sent from my BlackBerry 10 smartphone on the > Verizon Wireless 4G LTE network. > Original Message > From: dmccrthy > Sent: Tuesday, September 1, 2015 4:12 PM > To: Tomcat Users List > Reply To: Tomcat Users List > Subject: RE: Tomcat 7.0.55 Not loading truststore or keystore > > Hi Jeff, > > Our client keystore has one certificate, but the truststore has multiple > certs. I'll try removing everything from the truststore except the server > cert and see what happens. > > Thanks, > Diarmuid > On 1 Sep 2015 19:53, <jeffery.scott.cr...@gmail.com> wrote: > > > > > >> openssl s_client -tls1 -connect server-dns-name:15305 -CAfile > > server-cert-with-intermediate-and-root-in-one-file.cer -cert > > client-public-key.cer -key client-private-key.key -pass > > pass:client-private-key-password > > > > I've had trouble when there are more certificate packaged in the same > file > > as the root certificate. If you can separate the certificates your > problem > > should go away. > > > > Jeff Crump > > > > > > Sent from Mail for Windows 10 > > > > > > > > From: George Stanchev > > Sent: Tuesday, September 1, 2015 1:02 PM > > To: Tomcat Users List > > Subject: RE: Tomcat 7.0.55 Not loading truststore or keystore > > > > > > Hi Diarmuid, > > > > We have run similar issue with client cert SSL. Is your 3rd party web > > service hosted on Windows/IIS? > > > > George > > > > -----Original Message----- > > From: dmccrthy [mailto:dmccr...@gmail.com] > > Sent: Tuesday, September 01, 2015 11:07 AM > > To: Tomcat Users List > > Subject: Tomcat 7.0.55 Not loading truststore or keystore > > > > Hi All, > > > > I am having trouble getting Tomcat to load a truststore and keystore. > > This seems to be a basic configuration issue but I can't figure out what > > the problem is. Any insights would be gratefully received. > > > > The scenario is: > > > > * A 3rd party web application is deployed in Tomcat > > * The 3rrd party web application is making outbound HTTPS connections to > a > > 3rd party web service > > * Tomcat JVM parameters are configured with > > > > -Djavax.net.ssl.trustStore=d:\Tomcat_ENV1\conf\tomcat_truststore.jks > > -Djavax.net.ssl.trustStorePassword=<snip> > > -Djavax.net.ssl.keyStore=d:\Tomcat_ENV1\conf\DWCHASSMESA002_keystore.jks > > -Djavax.net.ssl.keyStorePassword=<snip> > > -Dhttps.protocols="TLSv1" > > -Djavax.net.debug=ALL > > > > * Both truststore and keystore are JKS > > * Mutual authentication is used for the SSL handshake > > * There are no errors in the Tomcat logs to indicate a problem with the > > truststore and keystore > > * The Tomcat logs show the server-side certificate being downloaded but > > not reporting the expected lines > > > > Found trusted certificate: > > matching alias: <client cert alias> > > > > Or for the keystore, I am expecting to see a log that it is loading the > > keystore (example below), but there is no sign that the keystore is being > > loaded. I got the log extract below from a standalone java client which > > successfully connects using MA to the remote service. > > > > keyStore is : c:\temp\DWCHASSMESA002.pfx > > keyStore type is : PKCS12 > > keyStore provider is : > > init keystore > > init keymanager of type SunX509 > > > > *** > > found key for : dwchassmesa002 > > chain [0] = [ > > > > * The Tomcat logs show that the SSL handshake gets as far as the > > ClientKeyExchange, but there is no client certificate sent and the > > handshake terminates with "Software caused connection abort: recv > failed". > > On DataPower the error is that the client is not sending the certificate. > > > > <sip> > > http-bio-8080-exec-2, READ: TLSv1 Handshake, length = 13 > > *** CertificateRequest > > Cert Types: RSA, DSS > > Cert Authorities: > > <Empty> > > > > [read] MD5 and SHA1 hashes: len = 9 > > 0000: 0D 00 00 05 02 01 02 00 00 ......... > > *** ServerHelloDone > > [read] MD5 and SHA1 hashes: len = 4 > > 0000: 0E 00 00 00 .... > > *** Certificate chain > > *** > > *** ClientKeyExchange, RSA PreMasterSecret, TLSv1 [write] MD5 and SHA1 > > hashes: len = 269 > > > > <snip> > > http-bio-8080-exec-2, WRITE: TLSv1 Handshake, length = 269 [Raw write]: > > length = 274 > > 0000: 16 03 01 01 0D 0B 00 00 03 00 00 00 10 00 01 02 ................ > > <snip> > > > > 0110: 2E 32 .2 > > SESSION KEYGEN: > > PreMaster Secret: > > <snip> > > > > http-bio-8080-exec-2, WRITE: TLSv1 Handshake, length = 48 > > http-bio-8080-exec-2, waiting for close_notify or alert: state 1 > > http-bio-8080-exec-2, Exception while waiting for close > > java.net.SocketException: Software caused connection abort: recv failed > > http-bio-8080-exec-2, handling exception: java.net.SocketException: > > Software caused connection abort: recv failed %% Invalidated: > > [Session-163, TLS_RSA_WITH_AES_128_CBC_SHA] http-bio-8080-exec-2, called > > close() http-bio-8080-exec-2, called closeInternal(true) > > http-bio-8080-exec-2, called closeSocket( > > > > We are using the software below on the client environment: > > > > * Java(TM) SE Runtime Environment (build 1.7.0_67-b01) > > * Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) > > * JCE Unlimited Security: No > > * Apache Tomcat/7.0.55 > > * Microsoft Windows Server 2008 R2 Enterprise 64-bit > > > > Analysis Steps > > ============== > > > > 1) Openssl connects with MA parameters connects with no errors > > > > openssl s_client -tls1 -connect server-dns-name:15305 -CAfile > > server-cert-with-intermediate-and-root-in-one-file.cer -cert > > client-public-key.cer -key client-private-key.key -pass > > pass:client-private-key-password > > > > New, TLSv1/SSLv3, Cipher is AES256-SHA > > Server public key is 2048 bit > > Secure Renegotiation IS supported > > Compression: NONE > > Expansion: NONE > > No ALPN negotiated > > SSL-Session: > > Protocol : TLSv1 > > Cipher : AES256-SHA > > Session-ID: > > 893D24420CC89DED5E8E0E18C3D97270C3DD04B7A4B86602D5B34FC5E58DDE8F > > Session-ID-ctx: > > Master-Key: > > > > > 89ABDA0ED080567E0CB8494AC236B107B7430A5487986BE7F3B468AF81B19BC27FD9C7D3EBC46280B9A608E5517D447C > > Key-Arg : None > > PSK identity: None > > PSK identity hint: None > > SRP username: None > > Start Time: 1441125595 > > Timeout : 7200 (sec) > > Verify return code: 0 (ok) > > > > 2) A standalone Java program with a couple of lines to open a HTTPS > > connection to the 3rd party certificate works. This uses the same > > truststore and keystore > > 3) SoapUI works using the same truststore and keystore > > 4) Our 3rd party vendor can connect > > 5) I have googled various phrases like "Tomcat JVM not loading > > truststore". There are hundreds of examples involving HTTPS connectors > > and/or configuration errors. However we are not using server-side > > connectors and I can't see anything wrong with the configuration. The > only > > potential hit I found for a defect was in Tomcat 6 > > > http://tomcat.10.x6.nabble.com/configured-truststore-ignored-by-tomcat-td4986884.html > > > > 6) I tried installing a HTTPS connector in our Tomcat client instance. > > This then shows that the truststore is being loaded, but it is not used > by > > the outbound HTTPS client connections > > > > 7) Tried playing with the format of the file paths by adding double > > quotes, changing the path separator to forward or backslash, moving the > > location of the files. But this didn't make any difference. > > > > "d:\Tomcat_ENV1\DWCHASSMESA002_keystore.jks" > > d:\Tomcat_ENV1\conf\DWCHASSMESA002_keystore.jks > > d:/Tomcat_ENV1/DWCHASSMESA002_keystore.jks > > > > Thanks, > > Diarmuid > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > > > > > > > > > > > --- > > This email has been checked for viruses by Avast antivirus software. > > https://www.avast.com/antivirus > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >