Я пытаюсь проверить все аспекты возможностей конфигурации сетевой безопасности в 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 в качестве исходного ресурса, который делает эту работу?