Search code examples
sslwso2esbapache-synapse

WSO2 IntegrationStudio 8.2.0 Endpoint requiring SSL


I've an endpoint which can be reached only through SSL validation. E.g. to reach it by Google Chrome, I've installed xxxx.p12 certificate. On other implementations, such as python, I can reach the endpoint by expliciting the cert part in the request, i.e.:

import requests

response = requests.get(request_URL, data=data, headers=self.headers, cert=(self.cert_prod,self.key_prod), verify=False)

where self.cert_prod and self.key_prod are initialised by referencing the two files:

  • self.cert_prod = 'SSLCerts/xxxx.crt' (got from openssl pkcs12 -in xxxx.p12 -out xxxx.crt -nodes -nokeys)
  • self.key_prod = 'SSLCerts/xxxx.key' (got from openssl pkcs12 -in xxxx.p12 -out xxxx.key -nodes -nocerts)

My intent is to implement an API call in wso2 Micro Integrator which, after some mediations, ultimately calls the request_url (requiring SSL). I'd expect there's a way to refer the certificates (xxxx.p12 or xxxx.crt/xxxx.key) in within the

<endpoint>
    <http method="post" uritemplate="request_url">
    .....
    </http>
  .....
</endpoint>

statement. But I wasn't able to find applicable examples. Any suggestion?


Solution

  • I believe what you are trying to achieve is Mutual SSL or two-way SSL verification. You can accomplish this with Dynamic SSL profiled in WSO2. Take a look at this document.

    This may also come in handy, but just read this to understand the concept and configs. This is written for an older version of WSO2.