Привязка доверия для пути сертификации не найдена и возможное решение привязки доверия

#android #ssl #xamarin.forms #xamarin.android #android-network-security-config

Вопрос:

Я пытаюсь понять конфигурацию сетевой безопасности и бит сертификатов . До сих пор мне никогда не приходилось беспокоиться о настройке привязок доверия в моей конфигурации, так как приложения просто работали и полагались на то, что было настроено на сервере.

Предположим, у меня есть следующая конфигурация, в которой не указан якорь доверия

     <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
      <domain-config cleartextTrafficPermitted="false">    
      </domain-config>
    </network-security-config>
 
  1. Какова политика по умолчанию, применяемая для сертификатов в этом случае ?
  2. Будет ли он доверять любому сертификату, установленному на моем сервере?

Потому что я думаю, что у нас нарушена цепочка сертификатов (проверена с помощью sslchecker.. ) но у меня есть ситуация, которую я не могу объяснить коллегам по сетевой команде и тоже не понимаю ее.

Почему приложение для Android при выполнении https-вызова не работает, если цепочка сертификатов нарушена(не может достичь промежуточного сертификата), но работает в браузере?

Что означает система или пользователь? Могу ли я просто добавить это, и приложение больше не будет выдавать мне «Якорь доверия для пути сертификации не найден»?

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

Можешь ли ты пролить свет? посмотрел на документы Android, но мне не ясно.
Не могли бы вы потратить 5 минут, чтобы объяснить мне. на этот раз google не помог

Спасибо

Ответ №1:

Какова политика по умолчанию, применяемая для сертификатов в этом случае ?

По умолчанию безопасные соединения (с использованием протоколов, таких как TLS и HTTPS) из всех приложений доверяют предварительно установленным системным центрам сертификации, а приложения, ориентированные на Android 6.0 (уровень API 23) и ниже, также по умолчанию доверяют магазину ЦС, добавленному пользователем. Приложение может настраивать свои собственные подключения, используя базовую конфигурацию (для настройки всего приложения) или конфигурацию домена (для настройки для каждого домена).

Будет ли он доверять любому сертификату, установленному на моем сервере?

Вы можете доверять пользовательскому набору центров сертификации вместо платформы по умолчанию. Для получения более подробной информации об этом, пожалуйста, ознакомьтесь с документом. https://developer.android.com/training/articles/security-config#CustomTrust