我们在Jboss SOA 5.3.1中部署了一个应用程序。在服务器和客户端中都创建了自签名证书,它是1路ssl。但是,使用主机名和端点创建的服务器证书和客户端证书都使用IP地址注册。我们正在使用
protocol-socket-factory=org.apache.commons.httpclient.contrib.ssl.StrictSSLProtocolSocketFactory
在httpClient.properties中配置。但是当到达终点时,抛出异常说
org.jboss.soa.esb.actions.ActionProcessingException:处理HTTP I / O时出现问题:证书中的主机名不匹配:<15.191.34.56>!=主机名。
请让我知道如何禁用严格SSL的主机名验证吗?
关闭主机名验证将使您的连接容易受到MITM攻击。这不是解决此问题的正确方法。
您遇到的问题是由于您使用的是IP地址,而不是主机名。Java在这一点上严格遵循RFC 2818(与某些浏览器不同):
在某些情况下,URI被指定为IP地址而不是主机名。在这种情况下,iPAddress subjectAltName必须存在于证书中,并且必须与URI中的IP完全匹配。
当您生成您的证书,请确保你把IP地址在主题备用名称(类型IP地址),如所描述这里。另外,也可以改用主机名(尽管仍然建议将该名称放入SAN中)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句