javax.net.ssl.SSLException:主机名的证书不相符的android [英] javax.net.ssl.SSLException: hostname in certificate didn't match android
本文介绍了javax.net.ssl.SSLException:主机名的证书不相符的android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建一个Android应用程序中,我将数据发送到Web服务,但我得到javax.net.ssl.SSLException的错误:主机名的证书不相符的android这里是我的code
AsyncHttpClient CLIEN =新AsyncHttpClient();
Log.i(URL,将String.valueOf(BASE_URL +Race.svc / JSON /种族/扫描仪/添加/+ series_event_raceid +/+ QR code));
clien.put(BASE_URL +Race.svc / JSON /种族/扫描仪/添加/+ series_event_raceid +/+ QR code,新AsyncHtt presponseHandler(){}
在这里series_event_raceid = 103和QR code = R12g ***
请人帮我。
这是我的logcat
十月8日至18日:06:24.272:W / System.err的(5297):javax.net.ssl.SSLException:主机名的证书不匹配:<发展。 racerunner.com> !=< racerunner.com>或LT; racerunner.com>
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:185)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:54)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:95)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:388)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
10月8日至18日:06:24.272:W / System.err的(5297):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10月8日至18日:06:24.272:W / System.err的(5297):在com.loopj.android.http.AsyncHtt prequest.makeRequest(AsyncHtt prequest.java:98)
10月8日至18日:06:24.272:W / System.err的(5297):在com.loopj.android.http.AsyncHtt prequest.makeRequestWithRetries(AsyncHtt prequest.java:112)
10月8日至18日:06:24.272:W / System.err的(5297):在com.loopj.android.http.AsyncHtt prequest.run(AsyncHtt prequest.java:68)
10月8日至18日:06:24.272:W / System.err的(5297):在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:422)
10月8日至18日:06:24.272:W / System.err的(5297):在java.util.concurrent.FutureTask.run(FutureTask.java:237)
10月8日至18日:06:24.272:W / System.err的(5297):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10月8日至18日:06:24.272:W / System.err的(5297):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587)
10月8日至18日:06:24.272:W / System.err的(5297):在java.lang.Thread.run(Thread.java:811)
10月8日至18日:06:24.272:I /失败相机ARG1(5297):空
10月8日至18日:06:24.272:I /失败相机ARG2(5297):空
10月8日至18日:06:24.272:I /失败的相机参数3(5297):javax.net.ssl.SSLException:主机名的证书不匹配:< development.racerunner.com> !=< racerunner.com>或LT; racerunner.com>
解决方案
您可以使用 SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER
SSLSocketFactory的SF =新的SSLSocketFactory(
SSLContext.getInstance(TLS),
SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
计划SCH =新计划(https开头,443,SF);
。httpclient.getConnectionManager()getSchemeRegistry()寄存器(SCH);
HTTPGET HTTPGET =新HTTPGET(https://开头的主机/);
您正在尝试连接。
I am creating an android app in which i am sending data to the web service but i am getting error of javax.net.ssl.SSLException: hostname in certificate didn't match android here is my code
AsyncHttpClient clien= new AsyncHttpClient();
Log.i("URL", String.valueOf(base_url+"Race.svc/json/Race/Scanners/Add/"+series_event_raceid+"/"+qrCode));
clien.put(base_url+"Race.svc/json/Race/Scanners/Add/"+series_event_raceid+"/"+qrCode, new AsyncHttpResponseHandler() {}
where series_event_raceid=103 and qrcode=R12g***
anyone please help me
here is my logcat
08-18 10:06:24.272: W/System.err(5297): javax.net.ssl.SSLException: hostname in certificate didn't match: <development.racerunner.com> != <racerunner.com> OR <racerunner.com>
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:185)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:54)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:95)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:388)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
08-18 10:06:24.272: W/System.err(5297): at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:98)
08-18 10:06:24.272: W/System.err(5297): at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:112)
08-18 10:06:24.272: W/System.err(5297): at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:68)
08-18 10:06:24.272: W/System.err(5297): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
08-18 10:06:24.272: W/System.err(5297): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-18 10:06:24.272: W/System.err(5297): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
08-18 10:06:24.272: W/System.err(5297): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
08-18 10:06:24.272: W/System.err(5297): at java.lang.Thread.run(Thread.java:811)
08-18 10:06:24.272: I/Fail camera arg1(5297): null
08-18 10:06:24.272: I/Fail camera arg2(5297): null
08-18 10:06:24.272: I/Fail camera arg3(5297): javax.net.ssl.SSLException: hostname in certificate didn't match: <development.racerunner.com> != <racerunner.com> OR <racerunner.com>
解决方案
You can use SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER
SSLSocketFactory sf = new SSLSocketFactory(
SSLContext.getInstance("TLS"),
SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme sch = new Scheme("https", 443, sf);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget = new HttpGet("https://host/");
Where you are trying to connect.
这篇关于javax.net.ssl.SSLException:主机名的证书不相符的android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文