Косенко Данила Юрьевич (kosenko_danila) wrote,
Косенко Данила Юрьевич
kosenko_danila

Сами мы не умные

Есть приложение на адроид, написано на java. Есть сервер, с которым оно соединяется по https.
Соединяется вот таким кодом

public String getStr(String link){
		
String resultJson = "";

	try{
	

URL url = new URL(link);

        HttpsURLConnection con = (HttpsURLConnection)url.openConnection();
        con.setRequestMethod( "GET" );

        SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null,null,null);

        HostnameVerifier hostnameVerifier = new HostnameVerifier() {

            public boolean verify(String s, SSLSession sslSession) {
                return s.equals(sslSession.getPeerHost());
            }
        };
        con.setHostnameVerifier(hostnameVerifier);


        con.setSSLSocketFactory(sslContext.getSocketFactory());


        int responseCode = con.getResponseCode();
        InputStream inputStream;
        if (responseCode == HttpsURLConnection.HTTP_OK) {
            inputStream = con.getInputStream();
        } else {
            inputStream = con.getErrorStream();
        }

        // Process the response
		StringBuffer buffer = new StringBuffer();
        BufferedReader reader;
        String line = null;
        reader = new BufferedReader( new InputStreamReader( inputStream ) );
        while( ( line = reader.readLine() ) != null )
        {
             buffer.append(line);
			
        }
			resultJson = buffer.toString();
        inputStream.close();
		
		
	}catch(Exception e){
		
		Log.e("+++++++++++++++", e.toString());
		
		return "-1";
		
	}
	return resultJson;
	
    }


Берёт URL и возвращает строку по https.

Недавно админы забыли обновить сертификаты на сервере, просрочили, всё поотвалилось на сайте. Купили, поставили, всё заработало. На сайте.
А вот приложение на андроид так и не захотело работать.
При попытке соединиться, пишет:
-----
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
----

Вопрос, что надо сделать? Голова совсем не соображает. Гуглинг показывает, что надо что-то сделать на сервере, тогда всё заработает.
Аналогичное приложение под айфон (на swiftUI) работает без проблем.
Может быть, надо таки в моём коде на андроиде что-то править?
На сервере я бы и раз что-то поправить, но увы, не сисадмин ни разу.

Кто соображает - подскажите, плиз.

Обновлено. Утром, 15 декабря всё заработало, мне сказали, что сисадмин обновил систему. Всем спасибо.
Tags: андроид, линукс, памятка, программирование
Subscribe

  • Человеческая фигура

    Просто про пропорции, чтобы не считать головы.

  • С Первомаем!

  • Прикинь №3

    Итак, "Прикинь № 3". Создатели мультсериала решили прикинуть, как поведут себя персонажи "Metal Family", оказавшись в руках маньяка из фильма…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 22 comments

  • Человеческая фигура

    Просто про пропорции, чтобы не считать головы.

  • С Первомаем!

  • Прикинь №3

    Итак, "Прикинь № 3". Создатели мультсериала решили прикинуть, как поведут себя персонажи "Metal Family", оказавшись в руках маньяка из фильма…