Hi ESB team,

I have observed the following behaviour when invoking a secure proxy in a
clustered setup which calls an external http endpoint [1] with ESB 5.0.0
(Tested with RC1). Can you please inform if this behaviour is correct or
are there any alternative methods?

I have a secure proxy in my ESB cluster where it calls an external https
endpoint [1]. When I invoked this in a single node in my local machine, it
returned the response as expected. When I created the same secure proxy in
a Cluster, I received this error [2]. I was able to get rid of this error
by adding the certificate of the endpoint to client-truststore.jks file of
each ESB node of the cluster.

My question is, is this behaviour correct? Should we have to always add the
https endpoint certificate every time we need to use an external endpoint
in a secure proxy? Or is there another approach where we don't have to do
this and not required to add the keys to client-truststore.jks and restart
ESB nodes? This might not be convenient if we have a lot of https endpoints
being called via a secure proxy in ESB. Can you please advice?

Thanks!

[1] https://demo5224632.mockable.io/test123

[2] Exception in ESB worker node:-

TID: [-1] [] [2016-08-04 05:34:33,682] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "GET /services/SecureP1 HTTP/1.1[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,683] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "X-Forwarded-Host: wrk.esb500.wso2.com[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,683] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "X-Forwarded-Server: wrk.esb500.wso2.com[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,683] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "X-Forwarded-For: 10.100.7.95[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,683] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Connection: upgrade[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,683] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Host: ssl.esb500.com[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,684] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Authorization: Basic YWRtaW5lc2I1MDA6ZXNiNTAwQERhcw==[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,684] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Cache-Control: no-cache[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,684] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/48.0.2564.116 Safari/537.36[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,684] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Postman-Token: 60dc8ef4-36b0-03bd-5841-7efad2189071[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,684] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Accept: */*[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,685] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Accept-Encoding: gzip, deflate, sdch[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,685] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "Accept-Language: en-US,en;q=0.8[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,685] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Listener I/O dispatcher-1
>> "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,813] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
<< "CONNECT demo5224632.mockable.io:443 HTTP/1.1[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,814] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
<< "Host: demo5224632.mockable.io:443[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,814] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
<< "Proxy-Connection: Keep-Alive[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,814] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
<< "Proxy-Authorization: Basic c3F1aWQzdTpzcXVpZDN1[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,814] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
<< "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,874] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
>> "HTTP/1.1 200 Connection established[\r][\n]"
{org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,875] DEBUG
{org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-1
>> "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2016-08-04 05:34:33,998] ERROR
{org.apache.synapse.transport.passthru.TargetHandler} -  I/O error: General
SSLEngine problem {org.apache.synapse.transport.passthru.TargetHandler}
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1431)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)
at sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1214)
at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1186)
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469)
at
org.apache.http.nio.reactor.ssl.SSLIOSession.doWrap(SSLIOSession.java:237)
at
org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:271)
at
org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:410)
at
org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119)
at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159)
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338)
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
at
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:304)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at
sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1506)
at
sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:919)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:916)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1369)
at
org.apache.http.nio.reactor.ssl.SSLIOSession.doRunTask(SSLIOSession.java:255)
at
org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:293)
... 9 more
Caused by: sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable
to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
at
sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at
sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at
sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281)
at
sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136)
at
sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1493)
... 17 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
at
sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146)
at
sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
... 23 more
TID: [-1234] [] [2016-08-04 05:34:34,004]  WARN
{org.apache.synapse.endpoints.EndpointContext} -  Endpoint :
AnonymousEndpoint with address https://demo5224632.mockable.io/test123 will
be marked SUSPENDED as it failed
{org.apache.synapse.endpoints.EndpointContext}
TID: [-1234] [] [2016-08-04 05:34:34,004]  WARN
{org.apache.synapse.endpoints.EndpointContext} -  Suspending endpoint :
AnonymousEndpoint with address https://demo5224632.mockable.io/test123 -
last suspend duration was : 30000ms and current suspend duration is :
30000ms - Next retry after : Thu Aug 04 05:35:04 UTC 2016
{org.apache.synapse.endpoints.EndpointContext}
TID: [-1234] [] [2016-08-04 05:34:34,006]  INFO
{org.apache.synapse.mediators.builtin.LogMediator} -  To:
/services/SecureP1, MessageID:
urn:uuid:9ee295f6-3329-4e5e-b41a-cf690d1da0f7, Direction: request, MESSAGE
= Executing default 'fault' sequence, ERROR_CODE = 101500, ERROR_MESSAGE =
Error in Sender, Envelope: <?xml version='1.0'
encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Body/></soapenv:Envelope>
{org.apache.synapse.mediators.builtin.LogMediator}

Cheers,
Pubudu D.P
Senior Software Engineer - QA Team | WSO2 inc.
Mobile : +94775464547

Linkedin: https://uk.linkedin.com/in/pubududp
Medium: https://medium.com/@pubududp
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to