Android SSL 验证服务器证书 Hostname 不匹配错误。
来源:互联网 发布:gg大玩家怎么修改数据 编辑:程序博客网 时间:2024/04/30 13:49
使用HttpsURLConnection进行https访问的时候,当验证服务器证书的时候,有时候会报下面的错误。
12-24 16:37:04.801: W/System.err(26380): java.io.IOException: Hostname '74.208.145.100' was not verified12-24 16:37:04.801: W/System.err(26380): at com.android.okhttp.Connection.upgradeToTls(Connection.java:201)12-24 16:37:04.801: W/System.err(26380): at com.android.okhttp.Connection.connect(Connection.java:151)12-24 16:37:04.802: W/System.err(26380): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)12-24 16:37:04.802: W/System.err(26380): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)12-24 16:37:04.802: W/System.err(26380): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)12-24 16:37:04.802: W/System.err(26380): at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)12-24 16:37:04.802: W/System.err(26380): at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)12-24 16:37:04.802: W/System.err(26380): at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:25)12-24 16:37:04.802: W/System.err(26380): at com.example.ssl.MainActivity$1.doInBackground(MainActivity.java:75)12-24 16:37:04.802: W/System.err(26380): at com.example.ssl.MainActivity$1.doInBackground(MainActivity.java:1)
然后查看服务器证书,发现其中的域名为
CN=www.onlinehome-server.com
而我们的真正请求的域名为
74.208.145.100
错误原因是验证证书时发现真正请求和服务器的证书域名不一致。
解决这个问题有两个方法:
1.重新生成服务器的证书,用真实的域名信息。
2.在客户端代码中增加如下代码,忽略hostname 的验证。(仅仅用于测试阶段,不建议用于发布后的产品中。)
HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ public boolean verify(String string,SSLSession ssls) { return true; }});
1 0
- Android SSL 验证服务器证书 Hostname 不匹配错误。
- 12. javax.net.ssl.SSLException: hostname in certificate didn't match证书不匹配的主机名
- javax.net.ssl.SSLException: hostname in certificate didn't match证书不匹配的主机名
- SSL客户端不验证证书
- httpclient对象请求:如果报这个错:javax.net.ssl.SSLException: hostname in certificate didn't match证书不匹配的主机名
- android webview 跳过免费ssl证书验证
- SSL证书验证详解
- Axis 1 https(SSL) client 证书验证错误ValidatorException workaround
- 解决windows下gem SSL证书验证错误
- SSL服务器证书
- SSL证书安装错误
- weblogic SSL证书错误
- Android 访问 Tomcat SSL双向验证服务器。
- Android 访问 Tomcat SSL双向验证服务器
- 真机测试时证书不匹配错误
- ios7 ssl证书验证问题
- App绕过SSL证书验证
- SSL证书验证(采用AFNetwork)
- [统计学习]KNN算法
- 记我的人生中的第一次半马
- 分布式系统的设计几个要注意的地方
- BootStrap3学习笔记(1)--网格系统
- 漫谈程序员系列:程序员该不该考虑初创公司
- Android SSL 验证服务器证书 Hostname 不匹配错误。
- 边缘检测算法
- 转载:数据库查询过程是怎么实现的?
- 获取QQ图片等资源
- Xcode6 模拟器不显示键盘解决方案
- hdoj 第几天
- hdoj let the balloon rise
- 12-24-2014——2——星期三
- hdoj 杨辉三角