问题描述
我们正在使用WSO2集成器6.4。为了能够连接到第三方HTTPS服务器,我们需要将服务器的证书添加到client-truststore.jks。现在,许多服务器都使用来自https://letsencrypt.org的TTL为3个月的证书。 这意味着我们必须为环境中的每个第三部分服务器每三个月更新证书,否则会收到“发件人错误”错误。 有没有办法完全禁用WSO2 EI中的证书检查? 或者,也许可以通过一些自动方案来续订client-truststore.jks中的证书? 还是我们可以检查wso2 ei本身内部的client-truststore.jks中的证书,并在到期前发送警告?
解决方法
TLS信任的基本知识。
何时具有显式信任,即信任各个证书(通常对自签名证书进行信任)。确实,这种方法会产生大量的管理开销,主要是在启用新服务主机,将新服务主机脱机或使用短期证书时。
对于TLS(SSL),使用隐式信任。您的应用程序信任(持久)颁发者的列表-证书颁发机构(CA)。如果CA证书的列表随时间而变化,那么无论如何都需要一些手动管理。
有没有办法完全禁用WSO2 EI中的证书检查?
是的(在axis2.xml中),但是这会降低安全性,并且流量很容易受到中间人攻击。
我们通过仅将letsencrypt的根CA证书添加到client-truststore.jks中来解决此问题。
是的,这是正确的方法。如果您的环境封闭(无法访问Internet),则可能需要添加所有证书链(root和iternmediate签名证书)
,我们通过仅将letscrypt的根CA证书添加到client-truststore.jks中解决了此问题。这足以使wso2ei信任具有Letsencrypt证书的所有服务器。