在这种情况下,我使用的是WSO2 Enterprise Integrator 6.4.0
我目前处于这样的情况:我有1个端点(SOAP)由政府控制(需要使用),并且需要连接多个终端客户。为了使它起作用,所有最终客户都需要以相同的方式使用他们的拥有客户证书来寻址相同的端点。
因此,客户1具有证书1,客户2需要证书2,依此类推。
据文件和尝试,据我所知,一个端点只能在其连接中使用单个证书。由于客户数量可能每天都在变化,因此我将有一个通用的解决方案来解决这个问题。当前,为了解决此问题,我正在创建一种设计,在该设计中,我使用每个客户的终结点并使用反向代理连接到最终终结点。但是,这并不是理想的选择,因为我仍然需要为每个客户创建1个终结点,这可能会非常密集。
我愿意接受任何建议。
答案 0 :(得分:1)
很正确,您无法让ESB根据尝试连接的客户端出示其他证书。如果您真的想走这条路,可以在ESB前面放置一个反向代理(如nginx),并使用它来处理SSL可以,但是我不建议这样做。
如果要使用双向SSL(link,link),则需要将要连接到端点的客户端证书添加到客户端信任存储中。默认信任库位于<wso2EI_home>/repository/resources/security/client-truststore.jks
。导入证书keytool -import -trustcacerts -file <cert-file-name> -alias <choose-a-useful-name> -keystore client-truststore.jks
的默认密码是wso2carbon
。
这样做确实需要您维护证书,当客户端证书由于过期而更改时,您需要导入新证书。在您连接之前,他们将无法连接。
另一种选择是禁用双向SSL,并使您的端点打开以允许任何人(您允许通过防火墙)进行连接。您无需维护客户端证书列表。流量仍将被加密,您将失去对谁可以连接的严格控制。