«Основная ошибка: 3» относится к коду ошибки SSL_UNTRUSTED, определенному в классе SslError
( документация ).
Это означает, что ваш клиент подключился к серверу с цепочкой сертификатов SSL, что недопустимо. В частности, ваше устройство не принимает ЦС цепочки root как доверенный. Это может быть:
- самоподписанный сертификат
- цепочка сертификатов с сертификатом root, который не указан как доверенный root сертификат в вашем хранилище ключей:
- root могло быть сброшено; например, за ненадежность!
- root может быть новым, о котором ваше (устаревшее) устройство еще не знает,
- сломанный цепочка сертификатов
Обратите внимание, что этот сценарий ios потенциально хуже / опаснее сертификата с истекшим сроком действия.
Я бы начал с использования https://www.ssllabs.com/ssltest/ для проверьте URL-адрес и посмотрите, что он говорит. В зависимости от того, что в нем написано, исправление правильное может быть одним из следующих:
- Свяжитесь с владельцем сайта и попросите его обновить SSL-сертификат своего сайта.
- Обновите свое устройство (на стороне клиента), чтобы получить текущий набор доверенных root сертификатов, одобренных вашим поставщиком.
- Добавьте сертификат сервера (не root или промежуточные сертификаты CA) как доверенный сертификат в соответствии с инструкциями поставщика вашего устройства.
Обратите внимание, что последний фактически говорит «Я доверяю этому серверу» ... и вы должны делать это, только если вы можете получить сервер
Это (IMO) плохая идея, чтобы приложение Android делало это от имени пользователя. И плохая идея - доверять приложению, которое запрашивает разрешение на это. Если у вас нет действительно серьезных гарантий, что приложение заслуживает доверия
Почему? Потому что приложение, которое может устанавливать доверенные root сертификаты , могло установить плохой сертификат, открывая дверь для всякого рода мерзостей.
ОБНОВЛЕНИЕ
Результаты SSLTest показывают, что цепочка сертификатов не завершена, что объясняет, почему вы получаете ошибку SSL_UNTRUSTED
Вам следует сообщите об этом владельцу сайта:
- Цепочка сертификатов неполная и должна быть исправлена.
- На сайте установлено старое / устаревшее / устаревшее программное обеспечение SSL.
- Сайт имеет ряд других уязвимостей безопасности.
Если они не реагируют, разумный курс действий - прекратить попытки использовать их сайт. К нему нельзя получить безопасный доступ.