Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Android [игнор отключен] [закрыт для гостей] / javax.net.ssl.SSLPeerUnverifiedException: No peer certificate / 7 сообщений из 7, страница 1 из 1
12.02.2017, 08:59
    #39402889
dima19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
Доброго времени суток
подскажите где ошибся
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.params.ConnPerRoute;
import org.apache.http.conn.params.ConnPerRouteBean;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.json.JSONException;
import org.json.JSONObject;

import javax.net.ssl.*;
import java.io.*;
import java.security.KeyStore;
import java.util.List;
import static java.lang.System.out;

public class JSONParser {

         Context context;

        public JSONParser(Context context) {
            this.context = context;
        }



        public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) {
            InputStream is = null;
            InputStream in = null;
 
            KeyStore keystore = null;
            System.setProperty("javax.net.ssl.keyStore", "client01.p12");
            System.setProperty("javax.net.ssl.keyStorePassword", "q1w2e3");
            System.setProperty("javax.net.ssl.trustStore", "mystore.bks");
            System.setProperty("javax.net.ssl.trustStorePassword", "q1w2e3");

            try{
                in = context.getResources().openRawResource(R.raw.mystore);
               KeyStore trustStore = null;
               trustStore = KeyStore.getInstance("bks");
               trustStore.load(in, "q1w2e3".toCharArray());

                out.println("Loaded server certificates: " + trustStore.size());

                // initialize trust manager factory with the read truststore
                TrustManagerFactory trustManagerFactory = null;
                trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
                trustManagerFactory.init(trustStore);

                keystore = KeyStore.getInstance("PKCS12");
                InputStream trustStoreStream = context.getResources().openRawResource(R.raw.client01);
                keystore.load(trustStoreStream, "q1w2e3".toCharArray()); //<-- keystore might be null

                out.println("Loaded client certificates: " + keystore.size());

                // initialize key manager factory with the read client certificate
                KeyManagerFactory keyManagerFactory = null;
                keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
                keyManagerFactory.init(keystore, "q1w2e3".toCharArray());


                // initialize SSLSocketFactory to use the certificates
                SSLSocketFactory socketFactory = null;


                socketFactory = new SSLSocketFactory(SSLSocketFactory.TLS, keystore, "q1w2e3",trustStore ,null,null);

            HttpParams params1 = new BasicHttpParams();
            HttpProtocolParams.setVersion(params1, HttpVersion.HTTP_1_1);
            HttpProtocolParams.setContentCharset(params1, "UTF-8");
            HttpProtocolParams.setUseExpectContinue(params1, true);
            HttpProtocolParams.setUseExpectContinue(params1, false);
            HttpProtocolParams.setUserAgent(params1, "Android app/1.0.0");

            ConnPerRoute connPerRoute = new ConnPerRouteBean(12);
            ConnManagerParams.setMaxConnectionsPerRoute(params1, connPerRoute);
            ConnManagerParams.setMaxTotalConnections(params1, 20);


            HttpConnectionParams.setStaleCheckingEnabled(params1, false);
            HttpConnectionParams.setConnectionTimeout(params1, 20 * 1000);
            HttpConnectionParams.setSoTimeout(params1, 20 * 1000);
            HttpConnectionParams.setSocketBufferSize(params1, 8192);
            HttpClientParams.setRedirecting(params1, false  );

            // Register http/s shemas!
            SchemeRegistry schReg = new SchemeRegistry();
            schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(),80));
            schReg.register(new Scheme("https", socketFactory, 443));
            SingleClientConnManager conMgr = new SingleClientConnManager(params1,schReg);
            DefaultHttpClient sClient = new DefaultHttpClient(conMgr, params1);

                out.println("Connected SSL socket11");

            HttpGet httpGet = new HttpGet(url);
            HttpResponse response = null;
            response = sClient.execute(httpGet);
            HttpEntity httpEntity = response.getEntity();

            is = httpEntity.getContent();
            BufferedReader read = new BufferedReader(new InputStreamReader(is));
            String query = null;
                while ((query = read.readLine()) != null)
                     out.println("dima"+query);
        } catch(Exception e)
            {e.printStackTrace();
      }

...
Рейтинг: 0 / 0
12.02.2017, 14:24
    #39402951
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
dima19подскажите где ошибся
в 17 строке
...
Рейтинг: 0 / 0
12.02.2017, 14:53
    #39402956
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
dima19подскажите где ошибся
Сообщение об ошибке не помешало-бы, да и в какой строке возникает.
Ну и описать-бы желаемый результат.
...
Рейтинг: 0 / 0
12.02.2017, 15:12
    #39402961
dima19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
Petro123dima19подскажите где ошибся
в 17 строке ?
ошибка W/System.err: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
в строке response = sClient.execute(httpGet);
при чтении прочитать все на странице
...
Рейтинг: 0 / 0
12.02.2017, 15:16
    #39402963
dima19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
через браузер запрашивает сертификат клиента самописный,
на странице результат {"products":[{"pid":"1","name":"dima","price":"45.55","created_at":"2017-02-02 08:24:11","updated_at":"0000-00-00 00:00:00"}],"success":1} json, но до него далеко так как сервак не пропускает
...
Рейтинг: 0 / 0
12.02.2017, 16:24
    #39402976
dima19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
не могу найти ошибку,может что то не то с настройками сервака.Но что искать не знаю
...
Рейтинг: 0 / 0
12.02.2017, 16:39
    #39402982
dima19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
если отключить проверку socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
то в строке socketFactory = new SSLSocketFactory(SSLSocketFactory.TLS, keystore, "q1w2e3",null,null,null);
получаю ошибку W/System.err: java.lang.NullPointerException
подскажите как решить проблему.
при запросе openssl s_client -connect *.*.*.*:443
получаю
Certificate chain
0 s:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd
i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd
.....
---
SSL handshake has read 1556 bytes and written 419 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / javax.net.ssl.SSLPeerUnverifiedException: No peer certificate / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]