Camel Gurus, I am running Camel 2.8, and to proxy a https web service I use the following simple route: from("servlet:///proxyWebService/api/?matchOnUriPrefix=true") .process(myProcessor)
.to("https4://realWebService:8443/api/?bridgeEndpoint=true&throwExceptionOnFailure=false"); This worked great in Camel 2.8. In camel 2.10, I am getting a "Certificate not verified" error. I have not changed anything in my code. I register the same trust manager as before. I noticed in the camel logs that in 2.10, instead of using https4, it is using plain https. Also, instead of proxying a GET, it is changing it to a POST. For instance here is the relevant line with 2.8: *[ http-bio-443-exec-16] HttpProducer DEBUG Executing http GET method: https4://example.com/foo?bridgeEndpoint=true&throwExceptionOnFailure=true <http://example.com/foo?bridgeEndpoint=true&throwExceptionOnFailure=true>* and with 2.10: *[ http-bio-443-exec-20] HttpProducer DEBUG Executing http POST method: https://example.com/foo <https://example.com/foo>* My client code is the same for both cases. But I notice in 2.10 it is not using https4 and using https. This seems wrong. Here are some more logs from the failing 2.10 scenario: http-bio-443-exec-20] HttpProducer DEBUG Starting producer: Producer[https4:// example.com/foo?throwExceptionOnFailure=true&bridgeEndpoint=true] [ http-bio-443-exec-20] ProducerCache DEBUG Adding to producer cache with key: Endpoint[https4:// example.com/foo?throwExceptionOnFailure=true&bridgeEndpoint=true] fo r producer: Producer[https4:// example.com/foo?throwExceptionOnFailure=true&bridgeEndpoint=true] [ http-bio-443-exec-20] DefaultErrorHandler DEBUG Redelivery enabled: false on error handler: DefaultErrorHandler[Producer[https4:// example.com/foo?throwExceptionOnFailure =true&bridgeEndpoint=true]] [ http-bio-443-exec-20] HttpProducer DEBUG The uri used by http request is https://example.com/foo [ http-bio-443-exec-20] HttpProducer DEBUG No Content-Type provided for URL: https://example.com/foo with exchange: Exchange[Message: SNIPPED] [ http-bio-443-exec-20] HttpProducer DEBUG Executing http POST method: https://example.com/foo [ http-bio-443-exec-20] ThreadSafeClientConnManager DEBUG Get connection: {s}->https://example.com, timeout = 0 [ http-bio-443-exec-20] ConnPoolByRoute DEBUG [{s}-> https://example.com] total kept alive: 0, total issued: 0, total allocated: 0 out of 200 [ http-bio-443-exec-20] ConnPoolByRoute DEBUG No free connections [{s}->https://example.com][null] [ http-bio-443-exec-20] ConnPoolByRoute DEBUG Available capacity: 20 out of 20 [{s}->https://example.com][null] [ http-bio-443-exec-20] ConnPoolByRoute DEBUG Creating new connection [{s}->https://example.com] [ http-bio-443-exec-20] efaultClientConnectionOperator DEBUG Connecting to example.com [ http-bio-443-exec-20] DefaultClientConnection DEBUG Connection org.apache.http.impl.conn.DefaultClientConnection@14b66e7 closed [ http-bio-443-exec-20] DefaultClientConnection DEBUG Connection org.apache.http.impl.conn.DefaultClientConnection@14b66e7 shut down [ http-bio-443-exec-20] ThreadSafeClientConnManager DEBUG Released connection is not reusable. [ http-bio-443-exec-20] ConnPoolByRoute DEBUG Releasing connection [{s}->https://example.com][null] [ http-bio-443-exec-20] DefaultClientConnection DEBUG Connection org.apache.http.impl.conn.DefaultClientConnection@14b66e7 closed [ http-bio-443-exec-20] ConnPoolByRoute DEBUG Notifying no-one, there are no waiting threads [ http-bio-443-exec-20] DefaultErrorHandler DEBUG Failed delivery for (MessageId: ID-apigw-hcmf-ws1-45019-1385508799740-0-3 on ExchangeId: ID-apigw-hcmf-ws1-45019-1385508799740-0-4). On delivery attempt: 0 caught: javax.net.ssl.SSLException: Certificate not verified. [ http-bio-443-exec-20] TestExceptionHandler INFO TestExceptionHandler.process() [ http-bio-443-exec-20] TestExceptionHandler INFO Error-Certificate not verified. Certificate not verified. [ http-bio-443-exec-20] TestExceptionHandler INFO StackTrace-- javax.net.ssl.SSLException: Certificate not verified. at com.rsa.sslj.x.aE.b(Unknown Source) at com.rsa.sslj.x.aE.a(Unknown Source) at com.rsa.sslj.x.aE.a(Unknown Source) at com.rsa.sslj.x.aP.c(Unknown Source) at com.rsa.sslj.x.aP.a(Unknown Source) at com.rsa.sslj.x.aP.h(Unknown Source) at com.rsa.sslj.x.cz.startHandshake(Unknown Source) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:534) tia, rouble