在单个项目中实现单向和相互HTTPS端点时出现证书错误

时间:2014-06-13 18:37:20

标签: https mule

我遇到了一个问题,如果我想使用多个出站HTTPS连接 - 有些需要相互身份验证,有些则不需要,的连接需要双向身份验证会引发错误。

最初,当我配置一个空的(即没有密钥库)HTTPS连接器供端点引用时,单独的单向HTTPS连接可以正常工作。一旦我添加了需要双向身份验证的其他出站HTTPS连接(以及他们自己的关联HTTPS连接器,包括密钥库),我就无法再连接到单向端点; Mule返回错误:“无法找到所请求目标的有效证书路径”。

以下是单向配置的示例:

<https:connector name="emptyConnector" doc:name="HTTP-HTTPS"/>
<https:outbound-endpoint exchange-pattern="request-response" method="POST" doc:name="HTTP" host="google.com" connector-ref="emptyConnector" port="443"/>

一个用于相互认证:

<https:connector name="HTTP_HTTPS" cookieSpec="netscape" validateConnections="true" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" doc:name="HTTP-HTTPS">
    <https:tls-key-store path="store.jks" storePassword="password" keyPassword="password" keyAlias="keyalias"/>
</https:connector>
<https:outbound-endpoint exchange-pattern="request-response" connector-ref="HTTP_HTTPS" method="GET" doc:name="HTTP" address="https://someservice.com"/>

他们自己都很好。只有在我看到这个问题的同一个项目中包含这两个时。请注意,在单向端点上不使用HTTPS连接器引用将导致它使用配置了密钥库的连接器,这最终会导致其他证书错误。我注意到两年前Mulesoft的归档论坛上有一个post,它有同样的问题。不幸的是,它仍然没有得到解决。

附加说明:如果我将站点的CA的公共证书导入密钥库并配置emptyConnector以包含它(作为https:tls-server元素),则连接器可以正常工作。但是,由于站点的证书是合法CA颁发的有效证书,我不认为这种解决方法是必要的 - 特别是如果端点最初在没有证书的情况下工作。

这是一个相当离奇的问题 - 有没有人有任何想法或者之前已经看过这个问题?

0 个答案:

没有答案