Включить протокол TLSv1.2 в Mule ESB при нажатии запроса веб-службы SOAP

Я использую одну службу, которая устанавливает соединение только по протоколу TLSv1.2. В SoapUI
-Dsoapui.https.protocols=TLSv1.2 :- Этот параметр работает нормально и может получить ответ от службы в инструменте пользовательского интерфейса SOAP.

Нужно что-то похожее на указанный выше параметр в потоке 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>

Любая помощь приветствуется !!


person Aniket K    schedule 25.03.2016    source источник


Ответы (2)


Вы можете настроить свои криптографические протоколы и наборы шифров. Я MULE_HOME/tls-default.conf.

person Ale Sequeira    schedule 26.03.2016
comment
Спасибо за ваш ответ. Я уже настроил эти протоколы. tls-default.conf помещен в домашний путь мула. И я раскомментировал ниже раздел файла conf. enableProtocols=TLSv1,TLSv1.1,TLSv1.2 - person Aniket K; 28.03.2016
comment
и проблема все еще сохраняется. В wrapper.conf добавлена ​​​​одна запись как #include %MULE_BASE%/conf/tls-default.conf - person Aniket K; 28.03.2016
comment
Нужно поставить только TLS 1.2, вот так: enabledProtocols=TLSv1.2 - person Ale Sequeira; 28.03.2016
comment
Пробовал ставить только TLSv1.2. все еще показывает то же исключение. Также пробовал эти многочисленные комбинации системных аргументов. 2 - person Aniket K; 29.03.2016
comment
Включаете ли вы TLS в своем потребителе веб-сервиса? - person Ale Sequeira; 29.03.2016
comment
Не уверен, что понял ваш вопрос, но я подключаюсь к сервису через мула с помощью cxf:proxy-service. в настоящее время SOAPUI служит клиентом, который нажимает URL-адрес мула, и мул перенаправляет его на стороннюю службу wsdl. - person Aniket K; 30.03.2016
comment
Есть ли причина использовать CXF вместо потребителя веб-службы? - person Ale Sequeira; 30.03.2016

Как указано в предыдущем ответе, enabledProtocols=TLSv1.2 должен помочь.

Если у вас по-прежнему возникают проблемы, вы можете использовать следующее для устранения неполадок:

Запустите Mule со следующим флагом -M-Djavax.net.debug=ssl:handshake:verbose

Таким образом, вы сможете увидеть реальный процесс рукопожатия.

Еще одним полезным инструментом является TestSSLServer для определения поддерживаемых протоколов и комплектов шифров целевой системы.

Кроме того, вы можете рассмотреть возможность установки пакета Java Cryptography Extension.

HTH, Науэль.

person Nahuel Dalla Vecchia    schedule 12.05.2016