0

我正在使用一项仅通过 TLSv1.2 协议建立连接的服务。在 SoapUI
-Dsoapui.https.protocols=TLSv1.2 中:- 此参数工作正常,并且能够从 SOAP UI 工具中的服务获取响应。

在 mule ESB 流上需要类似于上述参数的东西,这允许我的请求在代理期间显式使用 TLSv1.2 协议。

我正在使用 Mule 3.7 CE 和 JDK 7。消息流使用 CXF 代理(cxf:proxy-service)将基于 SOAP 的请求通过 Https 定向到最终客户端。当向 Mule 发送请求时,它会抛出如下异常。

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]

已经尝试通过 tls-default.conf 文件启用协议,但添加系统参数和服务器参数也不起作用。

这是使用安全策略的 wsdl 片段 -

<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>

任何帮助将非常感激 !!

4

2 回答 2

0

如上一个回复所述,enabledProtocols=TLSv1.2应该可以解决问题。

如果问题仍然存在,您可以使用以下方法进行故障排除:

使用以下标志启动 Mule-M-Djavax.net.debug=ssl:handshake:verbose

这样,您将能够看到实际的握手过程。

另一个有用的工具是 TestSSLServer,用于确定目标系统支持的协议和密码套件。

此外,您可以考虑安装 Java Cryptography Extension 包。

HTH,纳韦尔。

于 2016-05-12T14:06:30.963 回答
0

你可以配置你的加密协议和密码套件我是 MULE_HOME/tls-default.conf

于 2016-03-26T13:03:47.620 回答