Подтвердить что ты не робот

Что мы используем для конфигурации сетевой безопасности Android N для самоподписанного сертификата?

Я пытаюсь проверить все аспекты возможностей конфигурации сетевой безопасности в N Developer Preview. У меня большая часть его работы, но я в тупике по сценарию самозаверяющего сертификата.

В соответствии с docs, Android N должен быть доволен файлом PEM или DER, как и для других сценариев проверки сертификатов. Однако я не очень хорошо работаю с самозаверяющими сертификатами, и мои попытки получить эту работу продолжают работать в исключениях проверки сертификатов.

Для тестирования я использую thin как сервер, работающий на моей машине разработки, доступный с помощью эмулятора N. Самозаверяющий сертификат работает для браузеров на моей машине разработки, и если я переключусь на запуск thin sans SSL, приложения могут достичь сервера просто отлично. Таким образом, это не проблема подключения.

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

sudo openssl genrsa -out "/etc/[webserver]/ssl/example.key" 2048
sudo openssl req -new -key "/etc/[webserver]/ssl/example.key" \
                 -out "/etc/[webserver]/ssl/example.csr"
sudo openssl x509 -req -days 365 -in "/etc/[webserver]/ssl/example.csr" \
                  -signkey "/etc/[webserver]/ssl/example.key"  \
                  -out "/etc/[webserver]/ssl/example.crt"

В соответствии с этим ответом на переполнение стека файл example.crt является файлом PEM. В другом месте я вижу инструкции по созданию файла с комбинированным PEM. Тем не менее, я попробовал оба из них, не повезло.

Что касается содержимого конфигурации сетевой безопасности, я попробовал как <domain-config>, так и <debug-overrides>. Последний выглядит так:

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>
  <debug-overrides>
    <trust-anchors>
      <certificates src="@raw/selfsigned"/>
    </trust-anchors>
  </debug-overrides>
</network-security-config>

Но я получаю ошибку проверки в любом случае.

Что именно мы должны вводить в качестве файла PEM или DER в качестве исходного ресурса, который делает эту работу?

4b9b3361

Ответ 1

Кажется, что работает над N Developer Preview 2, используя example.crt, сгенерированный скриптами openssl, указанными в вопросе. На данный момент я предполагаю, что в N Developer Preview 2 произошли изменения по сравнению с N Developer Preview 1, который учитывает изменение.