tomcat to send SSL client certificate - java

I am trying to do a https rest API call with a SSL certificate(PFX file) which have a password. I tested the connection from my desktop with SOAP UI and it is working fine.
I have a web application which is running on tomcat and I need my tomcat to send this certificate for all the http/https call which it will make.
I am not a tomcat person so i am stuck with this now.
I can find in online about how to set up a keystore & server.xml so that my web app can use Client Authentication against things connecting to it, not for when it needs to connect out to some other server(outgoing call).
my tomcat version is : 9.0.22
connector settings on my server.xml file

Related

Java WS Client HTTPS transport via remote IIS server

I've searched around so apologies if this is a repeat question:
A web service provider I work with has migrated to the cloud, requiring TLS connections.
My customer's (The web service consumer) java environment is setup with Tomcat acting as the container, connected via AJP to an IIS (v6) web server. The IIS server is where the Security is handled.
[Tomcat srv running WS Client] --AJP Connector--> [IIS server w/ SSL] ---> [Secure Web Service]
I'm trying to understand how to invoke the HTTPS connection from my app. From what I understand, the IIS server will create the HTTPS connection, but I don't have access to that certificate/keystore on the tomcat server (at least that's my understanding). Is there a way in java to invoke an HTTPS connection remotely so the IIS server can use it's certificate?
Any help would be appreciated!

can not change TLS protocol version on java web application

I wrote a simple app to send email to our smtp server. Java version is 1.8.0_101
Our server use only TLSv1.2. I wrote a simple app to send email to our server. I build this soft as jar and run it. It works normally and java use default tls version which is 1.2 on jdk1.8. Then I wrote a web service that accept request and send email to out smtp server. I use tomcat v9.0(also tested v7 and v8) I build war file and put the tomcat web app folder. But when I call my web service I got the below error
Could not convert socket to TLS.
Remote host closed connection during handshake
Then I realized that java does not use TLSv1.2 and use TLSv1. I tried lots of solution but no ones helped me. I could not change TLS version. Is there any way to change TLS version? Do I change this config on java side or tomcat?

Apache httpd ssl reverse proxy

I have the following scenario:
Web application (currently running in Eclipse)
Apache httpd proxy
5 backend servers (tomcat) all listening on HTTPS
I have valid certificates for all backend servers and also have the cert chain imported in the keystore. Can anyone explain to me or give me a sample config for the proxy? I am getting different errors when trying to establish trust between the proxy and backend servers like (downstream server wanted client certificate but none are configured).

Java Jersey SSL client from Glassfish 3.12

I have written a Jersey REST web service, deployed on Glassfish and secured using a CLIENT-CERT realm. Now I would like to call it from an application deployed on the same Glassfish server (or possibly another).
I can successfully call the service over SSL from a standalone Java class. However when I call it from code deployed on the same server I get a null certificate chain error, i.e. the client does not supply a certificate when requested to do so by the server.
javax.net.ssl.SSLHandshakeException: null cert chain
If I use the Glassfish keystore and truststore with the standalone class by setting
-Djavax.net.ssl.trustStore="C:\glassfish3\glassfish\domains\domain1\config\cacerts.jks"
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.keyStore="C:\glassfish3\glassfish\domains\domain1\config\keystore.jks"
-Djavax.net.ssl.keyStorePassword=changeit
then it still works, but not from within Glassfish itself.

Client Web Service call over SSL using Apache Axis

I'm using Apache Axis 1.5.1 to code a web service client connecting to a service over SSL. My application is running in Tomcat with SSL configuration setup in JKS. However, when I connect to the server, the connection is failing because the cert from our client is not being sent to the server. Is this something that has to be set in the client through code? Also note that the server does not need any user name or password authentication. With SSL turned off, everything works fine.
Thanks,
Two common approaches here:
http://ws.apache.org/xmlrpc/ssl.html
WebLogic has its own stuff:
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/security/SSL_client.html#wp1029670
As long as you have the certificates configured correctly in your trust store accessible to Tomcat, there are no changes to Apache Axis HTTP code.

Categories