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

时间:2017-03-24 11:49:13

标签: java ssl wso2 wso2-am wso2carbon

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

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

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

enter image description here

在我得到的日志文件中:

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: 
     <localhost> != </*.mydomain.io/mydomain.io/*.mydomain.io>
     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访问的密钥库中呢?

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

设置

<parameter name="HostnameVerifier">AllowAll</parameter>

是一种安全风险,主机名验证是有原因的。

答案 1 :(得分:0)

axis2\axis2.xml文件夹的conf文件中,您必须更改https transportSender以包含以下内容:

<parameter name="HostnameVerifier">AllowAll</parameter>

Here你可以阅读更多关于

的内容