Glide загрузить изображение из URl - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь использовать Glide для загрузки изображения с URL:

Glide.with(getContext()).load(urlImage).error(R.drawable.ic_profile_default).into(imgUser);

Это ошибка, которую я получаю:

W/Glide: Load failed for https:www.cerberusenlinea.com/images/profile/16/13/HOLCIM.jpeg with size [204x204]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There was 1 cause:
    javax.net.ssl.SSLHandshakeException(java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.)
     call GlideException#logRootCauses(String) for more detail

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Проблема в том, что вы пытаетесь получить изображение с небезопасного веб-сайта, поэтому Glide блокирует вас. Чтобы решить эту проблему, вы можете создать собственный менеджер доверия, но это очень опасно, потому что вы подвергаетесь воздействию человека в середине атаки. Если вы хотите следовать по этому пути, я предлагаю вам прочитать этот Якорь доверия не найден для Android SSL-соединения

Еще одно решение, которое, я полагаю, может быть загрузить образ и хост это на вашем сервере или на бесплатном сервисе (вы можете найти много из них), как https://imgur.com/upload или все остальные

0 голосов
/ 13 февраля 2020

Конфигурация HTTPS для сайта www.cerberusenlinea.com имеет проблемы с цепочкой.

Вы можете проверить это в бесплатном сканере Qualys: https://www.ssllabs.com/ssltest/analyze.html?d=www.cerberusenlinea.com

Result qualys scanner

Android требуется полная цепочка сертификатов для использования контента.

Официальная документация гласит:

Большинство опубликованных c ЦС не подписывают сертификаты сервера напрямую. Вместо этого они используют свой основной сертификат CA, называемый root CA, для подписи промежуточных CA. Они делают это, чтобы root CA можно было хранить в автономном режиме, чтобы снизить риск компрометации. Однако операционные системы, такие как Android, обычно напрямую доверяют только root CA, что оставляет небольшой разрыв между сертификатом сервера, подписанным промежуточным CA, и верификатором сертификата, который знает root CA. Чтобы решить эту проблему, сервер отправляет клиенту не только свой сертификат во время SSL-квитирования, но и цепочку сертификатов от ЦС сервера через любые промежуточные соединения, необходимые для достижения доверенного root ЦС.

В документации упоминаются некоторые альтернативы для решения проблемы со стороны приложения.

...