On Mon, Aug 8, 2016 at 11:14 AM, Pubudu Priyashan <[email protected]> wrote:

> Hi Jagath,
>
> So when we do that, it requires the user to restart the server every time
> they add a new https endpoint to add the keys to client-truststore. In
> production environments, this is not convenient and will have to go through
> a long process to add a key to the truststore since it requires a server
> restart. Are there any better approaches we can think of to overcome this
> without having to restart the servers when we add new https endpoints?
>
you can you use dynamic SSL support [1]
[1]
https://docs.wso2.com/display/ESB500/Multi-HTTPS+Transport#Multi-HTTPSTransport-DynamicSSLprofiles

>
> 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
>
>
> On Mon, Aug 8, 2016 at 10:55 AM, Jagath Sisirakumara Ariyarathne <
> [email protected]> wrote:
>
>> Hi Pubudu,
>>
>> Whenever you access a Https endpoint, you have to import back-end's
>> certificate to client-truststore. That is the default requirement if you
>> are using SSL between back-end and ESB.
>>
>> Thanks.
>>
>> On Mon, Aug 8, 2016 at 10:13 AM, Pubudu Priyashan <[email protected]>
>> wrote:
>>
>>> 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(SSLIOSes
>>> sion.java:237)
>>> at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSL
>>> IOSession.java:271)
>>> at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady
>>> (SSLIOSession.java:410)
>>> at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputRea
>>> dy(AbstractIODispatch.java:119)
>>> at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(Base
>>> IOReactor.java:159)
>>> at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEv
>>> ent(AbstractIOReactor.java:338)
>>> at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEv
>>> ents(AbstractIOReactor.java:316)
>>> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(A
>>> bstractIOReactor.java:277)
>>> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseI
>>> OReactor.java:105)
>>> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReacto
>>> r$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(ClientHa
>>> ndshaker.java:1506)
>>> at sun.security.ssl.ClientHandshaker.processMessage(ClientHands
>>> haker.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(SSLIO
>>> Session.java:255)
>>> at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSL
>>> IOSession.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(PKIXVali
>>> dator.java:292)
>>> at sun.security.validator.Validator.validate(Validator.java:260)
>>> at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustMana
>>> gerImpl.java:324)
>>> at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509Trust
>>> ManagerImpl.java:281)
>>> at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X50
>>> 9TrustManagerImpl.java:136)
>>> at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHa
>>> ndshaker.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(SunC
>>> ertPathBuilder.java:146)
>>> at sun.security.provider.certpath.SunCertPathBuilder.engineBuil
>>> d(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/";><s
>>> oapenv: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
>>>
>>>
>>
>>
>> --
>> Jagath Ariyarathne
>> Technical Lead
>> WSO2 Inc.  http://wso2.com/
>> Email: [email protected]
>> Mob  : +94 77 386 7048
>> <http://wso2.com/signature>
>>
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Senduran *
Senior Software Engineer,
WSO2, Inc.;  http://wso2.com/ <http://wso2.com/>
Mobile: +94 77 952 6548
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to