Mule双向HTTPS身份验证



我有一个Mule应用程序,它需要使用双向SSL身份验证通过HTTPS与外部服务器进行通信。

我的问题是:如何在Mule中启用服务器证书验证?默认情况下,Mule似乎不会验证服务器的证书。我使用的是Mule v 3.3.0。

例如:curl中的"-k"选项禁用服务器的证书验证。

同样,是否有任何配置参数可以启用/禁用服务器的证书验证?

谢谢Jai

对于3.6之前的Mule版本,HTTP传输支持配置HTTP出站端点使用的信任存储,以确定HTTPS服务器提供的证书是否应受到信任。

要提供包含需要信任的服务器证书的密钥存储,请将<https:tls-server />提供给<https:connector />,并在<https:outbound-endpoint />:中引用该连接器

<https:connector name="myHttpsConnector">
  <https:tls-server path="truststore.jks" storePassword="supersecure" />
</https:connector>
<flow name="someFlow">
  <https:outbound-endpoint host="remote-host" port="443" path="/api" connector-ref="myHttpsConnector" />
</flow>

clare的回答中链接的博客文章从服务器端和客户端对这一点进行了解释。您也可以参考HTTPS传输参考,尽管它没有解释tls服务器与tls客户端的使用。

您可以查看这篇博客文章。它将向您展示如何在Mule中配置相互身份验证。HTH。

您可以在Mule>=3.6.0中配置HTTP请求连接器,以使用您创建的信任存储,该存储包含您需要使用TLS配置信任的服务器的证书。

它可能看起来像这样:

 <tls:context name="tlsContextForServiceFoo">
    <tls:trust-store path="serviceFooServerCertificates.jks" password="supersecure"/>
    <tls:key-store path="myClientCertificates.jks" keyPassword="extrasecure" password="ultrasecure"/>
 </tls:context>
 <http:request-config name="twoWayAuthServiceFooConfig"
                      protocol="HTTPS"
                      host="services.pentagon.gov" 
                      port="443" 
                      tlsContext-ref="tlsContextForServiceFoo" />
 <flow name="useServiceFoo">
     <http:request config-ref="twoWayAuthServiceFooConfig" path="/api/doStuff" method="POST" />
 </flow> 

相关内容

最新更新