Crosswalk XWalkView: запрос отклонен по соображениям безопасности (Android 7.0 и выше)

Я использую Crosswalk XWalkView в качестве веб-просмотра моего приложения, теперь я загружаю какой-то веб-сайт, который имеет действующий сертификат и отлично работает в версиях Android ‹ 7.

Но с Android 7.0 и более поздних версий я получаю всплывающее сообщение ЗАПРОС БЫЛ ОТКЛОНЕН ДЛЯ БЕЗОПАСНОСТИ

и этот журнал

06-12 17:46:46.024 22518-22731/? I/X509Util: Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Я читал некоторые подобные вопросы, подобные этому, но публикуемое решение находится в Кордове (см. это). Я использую собственный Android, и я хотел бы знать, как я могу сделать это на своем конце (родной).

цитата из ссылки

Я решил эту проблему, добавив последние 3 строки следующего фрагмента в config.xml:

<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />

Спасибо!

В основном то, что я хочу сделать, это иметь какой-то белый список, как у Кордовы, но я не знаю, могу ли я добиться этого с помощью Native Android и Crosswalk. Во-первых, я не знаю, есть ли config.xml в родном андроиде (в кордове есть), теперь мне действительно нужно знать, как я могу реализовать это в своем проекте.


person Aaron    schedule 23.06.2017    source источник
comment
Можете ли вы дать более подробную информацию о том, что вы подразумеваете под использованием собственного Android. Вы имеете в виду, что используете JNI C++ (обычное значение) или какой-либо другой собственный фреймворк. Называть Java нативной на Android мне всегда казалось немного глупым. Вы получаете ошибку X509Certificate, которую можно исправить в Webview. Xwalkview надо будет проверить.   -  person Jon Goodwin    schedule 05.08.2017
comment
Извините, возможно, я изменю описание, я использую java. Что я хочу сделать, так это иметь файл config.xml, подобный тому, что делает кордова.   -  person Aaron    schedule 07.08.2017
comment
@JonGoodwin да, это можно исправить, если бы я использовал WebView, однако я использую XWalkView, и похоже, что это открытая проблема в мертвом проекте: crosswalk-project.org/jira/browse/XWALK-7375. stackoverflow.com/questions/40035794/ говорит, что они смогли решить эту проблему, добавив несколько строк в config.xml, я хочу это сделать, но я не использую Cordova.   -  person Aaron    schedule 07.08.2017


Ответы (1)


Мне удалось решить эту проблему, следуя инструкциям из конфигурации безопасности сети Android Я доверил дополнительный сертификат.

По сути, в первый раз, когда я попробовал это, я предоставил неправильный SSL-сертификат (я предположил, что это был сам веб-сайт, но причиной ошибки является хост для файла Javascript, загружаемого на веб-сайт) в моем network_security_config.xml.

Website_ca — это файл SSL-сертификата.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="@raw/website_ca"/>
            <certificates src="system"/>
        </trust-anchors>
    </base-config>
</network-security-config>

Теперь он работает нормально.

person Aaron    schedule 11.08.2017
comment
Я сделал это в прошлом году, и у меня больше нет этого файла, извините, @Waleed, но вы можете поискать, как получить «ca» с веб-сайтов. - person Aaron; 17.07.2018
comment
на самом деле у меня есть локальный сайт, поэтому обязательно добавлять сертификат ssl в необработанную папку? - person Tara; 17.07.2018
comment
как я могу извлечь ssl с локального сайта? - person Tara; 17.07.2018
comment
Знаете ли вы, где я могу добавить сертификат в свой ионный проект? Благодарность - person Mohammed Abo-zaid; 17.02.2020