【问题标题】:Using TLS 1.1/1.2 in WSO2 ESB out-going request在 WSO2 ESB 传出请求中使用 TLS 1.1/1.2
【发布时间】:2016-10-31 22:57:00
【问题描述】:

我正在尝试使用 WSO2 ESB (4.7.0) 通过 HTTPS 使用 Web 服务。 Web 服务要求所有调用者使用 TLS 版本 >1.0(1.1 或 1.2)。

我使用的是 Java 1.7。

我在 PassthroughTransportSender(和 Receiver)定义中添加了以下行,但无济于事:

<parameter name="HttpsProtocols">TLSv1.2</parameter>

如何让 WSO2 Callout and Send 中介使用更新的 TLS 版本(最好是 TLS 1.2)?

【问题讨论】:

  • 你解决了这个问题吗?我遇到这个错误,并设置HttpsProtocols,ESB 4.8.0 仍然使用 TLSv1。顺便说一句,我也在发件人中使用代理。
  • @James,不幸的是,我无法使用 WSO2 ESB 4.7.0 的答案中提出的任何方法解决问题。我们最终与我的团队一起做的是设置一个知道 TLS 1.2 的代理,并通过该代理路由 ESB 的 HTTPS 流量。我知道这种方法不是最理想的,但它是我们能够在不将 ESB 更新到较新版本的情况下提出的最好方法,这将包括相当多的配置更改(它自己的项目)。为此,您需要在 ESB 的密钥库中安装代理的 SSL 证书。
  • 是的。谢谢。明白你的想法。但我要求我的后端服务启用 TLSv1。无论如何,我们的团队已经决定迁移到 dropwizard。只需要维护 ESB 服务。

标签: web-services ssl wso2 wso2esb axis2


【解决方案1】:

打开位于 $ESB_HOME/repository/conf/axis2 目录下的 axis2.xml 文件。添加

<parameter name="HttpsProtocols">TLSv1</parameter>

PassThroughHttpSSLListener 和 PassThroughHttpSSLSender 元素中的条目。

请注意,如果您使用的是不支持直通传输的旧版 ESB,您可能需要在 HttpCoreNIOSSLListener 和 HttpCoreNIOSSLSender 元素中添加上述标记。您可以在我的博客文章 [1] 中获得更多信息/p>

[1]http://ravindraranwala.blogspot.com/2014/11/ssl-debugging-in-wso2-esb.html

【讨论】:

  • TLS 1.0 正是我不能使用的。我需要至少使用 TLS 1.1。
  • 这只是一个参考答案。所以根据你的要求改变它。
  • 我已经用我在写这个问题之前很久尝试使用的配置 sn-p 更新了这个问题。简而言之,它不起作用。
  • 尝试使用 WSo2 ESB 4.9.0。它会起作用的。据我所知,这也适用于 ESB 4.8.1。试一试,然后告诉我。
  • 当时更新 ESB 是不可能的。这就是为什么在问题一开始就特别提到了所需的 ESB 版本。更新运行多个复杂代理服务、API 和其他突触资源的 WSO2 ESB 绝非易事,我相信您很清楚。需要对配置进行大量更改。
【解决方案2】:

我使用 ESB 4.9.0 和 jdk 1.8 对此进行了测试。

将以下参数添加到 PassThroughHttpSSLSender,如下所示。

<transportSender name="https" class="org.apache.synapse.transport.passthru.PassThroughHttpSSLSender">
    .....
    <parameter name="HttpsProtocols">TLSv1.2</parameter>
    .....
</transportSender>

然后出站连接使用 TLSv1.2。

【讨论】:

  • 此方法不适用于所需的 ESB 版本 4.7.0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-24
  • 2018-08-06
  • 1970-01-01
  • 2017-08-08
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多