SSL连接导致javax.net.ssl.SSLException:证书中的主机名不匹配(WSO2 Api Manager / Tomcat)

我目前正在设立一个docker化的WSO Api Manager。 我们的域名获得了通配符证书。 我成功地将其转换为java密钥库并替换了两个jks文件。

当我打开API管理器时,我没有收到ssl警告,浏览器将我的连接标记为安全。

当我尝试登录时出现错误:

在此处输入图像描述

在我得到的日志文件中:

TID: [-1234] [] [2017-03-24 11:37:55,305] INFO {org.apache.axis2.transport.http.HTTPSender} - Unable to sendViaPost to url[https://localhost:9443/services/AuthenticationAdmin] {org.apache.axis2.transport.http.HTTPSender} javax.net.ssl.SSLException: hostname in certificate didn't match:  !=  at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName(SSLProtocolSocketFactory.java:341) at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName(SSLProtocolSocketFactory.java:277) 

看起来服务器正在尝试与localhost建立SSL连接。 那么如何将匹配的证书添加到密钥库以允许localhost访问?

非常感谢!

api-manager.xml文件中,更改localhost所有引用以匹配您的域名,重启,它应该是好的。

设置

 AllowAll 

是安全风险,主机名validation是有原因的。

conf文件夹的axis2\axis2.xml文件中,您必须将https transportSender更改为具有以下行:

 AllowAll 

在这里,您可以阅读更多相关信息