Я добавил свой собственный сертификат корневого CA в Android Trust Store (он отображается в качестве сертификата безопасности «пользователя» в списке сертификатов в приложении «Настройки»). Далее я настроил приложение Flutter и добавил дескриптор сетевой безопасности , который содержит источник сертификата «Пользователь» в манифест. Это позволяет приложению использовать мой собственный сертификат CA CA из Android Trust Store.
Код: Выделить всё
HttpClient client = HttpClient(context: SecurityContext.defaultContext);
HttpClientRequest request = await client.getUrl(url);
HttpClientResponse response = await request.close();
< /code>
Тем не менее, это приводит к тому, что HandshakeException < /code> с ошибкой в базовой ОС: "SERTITICE_VERIFY_FAILED: Сертификат самостоятельного подписания в цепочке сертификатов." < /p>
Я попробовал следующее: < /p>
[*] сделал запрос, используя надлежащий код Java. => Это работает, как и ожидалось, без ошибки!
Вручную добавлено сертификат в SecurityContext
с использованием setTrustedCertificatesbytes (...) . => Это работает, но я должен добавить сертификат в приложение вручную. (Я не нашел никакого способа извлечь его из системного трастового хранилища. => Это тоже не работает. Та же ошибка, что и выше. Есть ли способ заставить клиента Flutter HTTP вести себя должным образом и использовать существующий сертификат?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... on-android