Заказать разработку сайта

Оставить заявку

Как добавить SSL сертификат и отправлять запросы по https?

FAQ по Android (Java)

Внимание, раздел платный.
Подробнее
Сразу после оплаты на Ваш электронный адрес поступит ссылка с подробным ответом + архив с рабочим примером.
Все ответы на вопросы по Android (Java) проверены и используются в реальных проектах. Минимальная версия API 14

Вопрос

Использую класс AsyncHttpClient. Как добавить SSL сертификат, чтобы можно было отправлять запросы по https?


Пример кода:


RequestParams params = new RequestParams();
                params.put("BRAND", "TEST");
                  AsyncHttpClient client = new AsyncHttpClient();
                                client.setMaxRetriesAndTimeout(5,1000);
                                client.post("https://example.ru",params, new JsonHttpResponseHandler() {
                                    @Override
                                    public void onRetry(int retryNo) {
                                          super.onRetry(retryNo);
                                    }
                                    @Override
                                    public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                                        super.onFailure(statusCode, headers, responseString, throwable);
                                      }
                                    @Override
                                    public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
                                        super.onFailure(statusCode, headers, throwable, errorResponse);
                                    }
                                    @Override
                                    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                  
                
                                    }}
                                    );
                


При отправке Post-запроса на свой сервер получаю ошибку:


     Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
                        at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:282)
                        at com.android.org.conscrypt.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:202)
                        at com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:611)
                        
                


Как исправить?

Ответ

1. Будет работать, если у Вас есть действующий SSL сертификат от сайта, на который Вы отправляете запрос.

2. Если срок сертификата истек, его нужно будет продлевать и на сайте и в приложении.

3. Сертификат будет работать, если вы его купили у проверенных продавцов. Например: GlobalSing.

4. Сам сертификат нужно будет добавить в приложение.

5. Небезопасно, можно отключить проверку сертификата.

<br>

Рабочий пример сразу будет доступен после оплаты.

Оплатить 500 рублей
и получить полный ответ