0

我们在 IIS 下有一个 WCF 服务,它由带有客户端证书的传输安全 (SSL) 保护(不是消息 WS-Security,而是由 IIS 本身)。我已将证书添加到 wso2carbon.jks 每当执行发送调解器时,请求都会超时。IIS 日志仅显示错误 500.0。如果在 IIS 配置中我设置为忽略客户端证书,一切正常。编码的 Java Axis2 和 .Net 客户端也可以在 ISS 上打开证书时正常工作。

很可能我错过了通话中的某些内容。这种情况是否需要 WS-policy?我将不胜感激任何帮助。

4

2 回答 2

2

终于找到了解决办法。

解决方案 在 IIS 上启用 SSLAlwaysNegoClientCert。这是一篇好文章:Make IIS require SSL client certificate during initial handshake

原因:默认情况下,如果客户端访问受保护的资源,IIS 将重新协商 SSL。NIO 和 HttpPathThrough 传输不允许重新协商(这是有道理的,因为它是安全漏洞)。所以 IIS 没有得到 Client Hello 并发出错误 500(对 WSO2 的人来说,为什么 TryIt 客户端挂起直到超时呢?)

备注:我们并不总是可以在 IIS 端进行更改,因此如果 WSO2 ESB 中可用的传输在允许重新协商方面更加灵活(也许我错过了配置它的位置......)会更好

于 2013-03-15T05:16:00.023 回答
0

在这种情况下,WSO2 ESB 充当客户端。因此,您需要将证书导入到 WSO2 ESB 的 repository/resources/security 文件夹中的 client-truststore.jks。然后您的服务调用应该可以工作。

于 2013-03-14T06:14:02.790 回答