主机名在Lollipop设备中不匹配,但在Postman和marshmallow设备中工作正常

时间:2017-03-29 10:23:57

标签: java android ssl httpclient android-5.0-lollipop

最近SSL证书被添加到服务器,所以我将android中的url从http://appname.com更改为https://www.appname.com,这在marshmallow设备和Postman上工作正常,但在Lollipop设备上抛出javax.net .ssl.SSLException:证书中的主机名不匹配:www.appname.com!= www.companyname.com或www.companyname.com OR companyname.com

我尝试在setHostnameVerifier中添加companyname.com,但它没有帮助。这是代码:

{
    "_id" : ObjectId("58db886e4b9e731aaefa9821"),
    "name" : "Leonard"
},
{
    "_id" : ObjectId("58db886e4b9e731aaefa9823"),
    "name" : "Raj"
}

这可能是什么问题?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

错误表示已颁发证书的主机名(主题中的CN字段)与服务器名称不匹配。

如果您使用的是网址https://www.appname.com,则应将证书颁发给www.appname.com*.appname.com。证书的主机名是appname.com,然后错误是正确的,您可以使用https://appname.com但不能使用https://www.appname.com.

https://appname.com部署您的服务器,为www.appname.com颁发新证书或设置HostnameVerifier以允许www.appname.com