0
votes

I am consuming one service which only establishes the connection over TLSv1.2 protocol. In SoapUI
-Dsoapui.https.protocols=TLSv1.2 :- This parameter works fine and able to get the response from the service in SOAP UI tool.

Need something similiar like above parameter on the mule ESB flow which allows my request to use TLSv1.2 protocol explicitly during proxing.

I am using Mule 3.7 CE & JDK 7. The message flow uses CXF proxies(cxf:proxy-service) to direct SOAP based requests over Https to the end client. When a request is sent to Mule it is throwing an exception as below.

Caused by: org.apache.cxf.ws.policy.PolicyException: These policy alternatives can not be satisfied: {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}TransportBinding: TLS is not enabled {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}HttpsToken {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}TransportToken at org.apache.cxf.ws.policy.AssertionInfoMap.checkEffectivePolicy(AssertionInfoMap.java:179) ~[cxf-rt-ws-policy-2.7.15.jar:2.7.15]

Already tried enabling protocol through tls-default.conf file also adding system arguments and server arguments did not work.

Here is the snippet of wsdl using security policy -

<wsp:Policy wsu:Id="XYSPolicyID">
        <wsp:ExactlyOne>
            <wsp:All>
                <sp:TransportBinding
                    xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                    <wsp:Policy>
                        <sp:TransportToken>
                            <wsp:Policy>
                                <sp:HttpsToken RequireClientCertificate="false" />
                            </wsp:Policy>
                        </sp:TransportToken>
                        <sp:AlgorithmSuite>
                            <wsp:Policy>
                                <sp:Basic256 />
                            </wsp:Policy>
                        </sp:AlgorithmSuite>
                        <sp:Layout>
                            <wsp:Policy>
                                <sp:Strict />
                            </wsp:Policy>
                        </sp:Layout>
                    </wsp:Policy>
                </sp:TransportBinding>
            </wsp:All>
        </wsp:ExactlyOne>
    </wsp:Policy>

Any help would be much appreciated !!

2

2 Answers

0
votes

You can configure your cryptographic protocols and cipher suites I'm MULE_HOME/tls-default.conf

0
votes

As stated in the previous reply, enabledProtocols=TLSv1.2 should do the trick.

If you continue having problems, you can use the following to troubleshoot:

Start Mule with the following flag -M-Djavax.net.debug=ssl:handshake:verbose

In that way you will be able to see the actual handshake process.

Another useful tool is TestSSLServer to determine supported protocols and cipher suites of the target system.

Also, you may consider installing the Java Cryptography Extension package.

HTH, Nahuel.