是否可以使用WSO2 ESB的相互身份验证(客户端SSL证书)?(我不是在说WS-Security。)
我看到可以向ESB添加自定义密钥库,但我找不到任何关于在连接到特定后端时如何指定要使用的客户端密钥的信息。
是。您可以为ESB代理服务启用相互身份验证。在这里,您需要进行小配置,以便为所有代理服务启用相互身份验证。您可以编辑axis2.xml文件并将以下属性更改为"require"
<parameter name="SSLVerifyClient">require</parameter>
您可以在此处找到更多详细信息。但是,如果您要为给定的代理服务集启用相互身份验证,还有更多的工作要做。更多详细信息,请点击此处。ESB中的旧版本存在问题。因此,您需要安装一些修补程序。但有4.7.0和4.8.0(下一版本)。已经修复了。
在ESB和后端服务器之间设置相互SSL身份验证实际上非常简单。这也需要配置后端服务器。因为ESB在启动与后端的连接时充当"客户端",所以后端服务器负责请求"相互"SSL,而不是单向SSL。请参阅这篇不错的相互SSL文章以供参考[1]。
为了成功地与后端服务器使用相互SSL,
- 将后端服务器的公共证书加载到默认证书中truststore,位于:repository/resources/security/client-truststore.jks(就这样!这是WSO2ESB端唯一需要的更改。)
- 将公共证书从WSO2密钥库加载到后端服务器的密钥库
- 配置后端服务器以请求相互SSL
如果您使用的是CA证书而不是默认的自签名证书,请跳过步骤2。
干杯,Colin
[1]http://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication