106 lines
4.5 KiB
Plaintext
106 lines
4.5 KiB
Plaintext
самоподписанный сертификат. проблема в том, что не полуается его в доверенные добавть
|
||
|
||
1. Запустить эмулятор, потом добавить сертификат в sdcard/Download
|
||
adb push "/home/tatyana/Рабочий стол/ssl_test/localhost.crt" /sdcard/Download/
|
||
|
||
|
||
|
||
tatyana@fedora:~/Рабочий стол/ssl_test$ adb push "/home/tatyana/Рабочий стол/ssl_test/localhost.crt"
|
||
/sdcard/Download/
|
||
/home/tatyana/Рабочий стол/...pped. 12.2 MB/s (1046 bytes in 0.000s)
|
||
tatyana@fedora:~/Рабочий стол/ssl_test$
|
||
|
||
|
||
2. Сверзу нажать груг = хоум, Зайти в настройки устройства в самом эмуляторе
|
||
|
||
3. Найти "Encryption and Credentials /«Шифрование и учетные данные
|
||
|
||
4. Выбираем установка (второй пункт vpn ....)
|
||
|
||
5. сертификат будет в загрузках (пункт 1) на карте
|
||
|
||
6. Объединить ключ и сертификат
|
||
openssl pkcs12 -export -inkey localhost.key -in localhost.crt -out localhost.p12
|
||
|
||
7. перенести на устройство
|
||
adb push /home/tatyana/Рабочий\ стол/ssl_test/localhost.p12 /sdcard/Download/
|
||
|
||
|
||
/////////////////////////////////////////
|
||
2 способ поместить в доверенные в ручную
|
||
|
||
app/
|
||
src/
|
||
main/
|
||
res/
|
||
raw/
|
||
your_cert.der
|
||
|
||
|
||
|
||
Конечно! Ниже я подробно объясню, как доверять самоподписанному сертификату в эмуляторе Android для разработки, используя network_security_config.xml. Это наиболее безопасный и удобный способ для тестирования в приложениях без необходимости рутировать устройство или эмулятор.
|
||
Подробная инструкция: доверие к самоподписанному сертификату в Android через network_security_config.xml
|
||
Шаг 1. Подготовьте ваш сертификат
|
||
1.1. Экспортируйте сертификат в нужном формате
|
||
|
||
Если у вас есть .p12 или .crt, убедитесь, что он в формате .der или .pem.
|
||
|
||
Для этого используйте команду OpenSSL:
|
||
|
||
bash
|
||
|
||
# Извлечь сертификат из p12 в PEM
|
||
openssl pkcs12 -in localhost.p12 -clcerts -nokeys -out localhost.pem
|
||
|
||
или
|
||
bash
|
||
|
||
# Конвертировать PEM в DER (бинарный формат)
|
||
openssl x509 -in localhost.pem -outform DER -out localhost.der
|
||
|
||
Важно: Назовите файл, например, your_cert.der.
|
||
1.2. Поместите сертификат в проект
|
||
|
||
В вашем проекте Android создайте папку res/raw/ (если ее еще нет).
|
||
Поместите туда файл your_cert.der.
|
||
|
||
Шаг 2. Создайте файл конфигурации network_security_config.xml
|
||
|
||
Этот файл укажет вашему приложению доверять вашему сертификату.
|
||
2.1. Создайте папку и файл
|
||
|
||
В вашем проекте перейдите по пути: app/src/main/res/xml/
|
||
Если папки xml нет, создайте ее.
|
||
Внутри создайте файл network_security_config.xml.
|
||
|
||
2.2. Напишите содержимое файла
|
||
xml
|
||
|
||
<?xml version="1.0" encoding="utf-8"?>
|
||
<network-security-config>
|
||
<domain-config>
|
||
<domain>your.server.domain</domain> <!-- замените на ваш домен или IP -->
|
||
<trust-anchors>
|
||
<certificates src="@raw/your_cert" />
|
||
</trust-anchors>
|
||
</domain-config>
|
||
</network-security-config>
|
||
|
||
Обратите внимание:
|
||
|
||
Замените your.server.domain на ваш реальный сервер или IP, к которому вы подключаетесь.
|
||
Если вы хотите доверять всему трафику (не рекомендуется), можно оставить <domain>, а не указывать конкретный.
|
||
|
||
Шаг 3. Обновите AndroidManifest.xml
|
||
|
||
Добавьте ссылку на конфигурацию безопасности в ваш манифест:
|
||
xml
|
||
|
||
<application
|
||
android:networkSecurityConfig="@xml/network_security_config"
|
||
... >
|
||
...
|
||
</application>
|
||
|
||
|