I am using Spring RestTemplate in my application to access external web services. However, this SSL-enabled web service with a self-signed certificate (domain, etc.) is also not valid. This only happens on the local network, so I do not need to worry about some security issues. I want to make Spring to accept this certificate. This is what I have done so far:
1.) I configured my JBOSS 7 to use this keystore
<connector name="https" protocol="HTTP/1.1" socket-binding="https" scheme="https" enable-lookups="false" secure="true"> <ssl name="ssl" key-alias="my-private-key" password="rmi+ssl" certificate-key-file="../standalone/configuration/server-keystore.jks" protocol="TLSv1" verify-client="false"/> </connector>
2.) Here is the configuration of my RestTemplate Bean (I use autwireing in my classes)
<bean id="stringHttpConverter" class="org.springframework.http.converter.StringHttpMessageConverter"></bean> <bean id="httpClientParams" class="org.apache.commons.httpclient.params.HttpClientParams"> <property name="authenticationPreemptive" value="true"/> <property name="connectionManagerClass" value="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager"/> </bean> <bean id="httpClient" class="org.apache.commons.httpclient.HttpClient"> <constructor-arg ref="httpClientParams"/> </bean> <bean id="httpClientFactory" class="org.springframework.http.client.CommonsClientHttpRequestFactory"> <constructor-arg ref="httpClient"/> </bean> <bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> <constructor-arg ref="httpClientFactory"/> <property name="messageConverters"> <list> <ref bean="stringHttpConverter" /> </list> </property> </bean>
I imported the server certificate into the keystore, it is definitely located there. What else do I need to do? I already checked all such questions here, but none of them helped. Thanks.
source share