Мой веб-сервер, на котором я работаю, имеет собственный сертификат. У меня есть localhost.crt
. Я просматривал эту страницу, чтобы исправить проблемы с HTTP-запросами:
https://developer.android.com/training/articles/security-config
Это мой network_security_config.xml
:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<trust-anchors>
<certificates src="@raw/localhost"/>
</trust-anchors>
</domain-config>
</network-security-config>
В нем говорится, что
Добавить самоподписанный или неопубликованный сертификат CA c, в формате PEM или DER, в res / raw /my_ca.
Итак, что я сделал, я зашел на этот сайт https://www.sslshopper.com/ssl-converter.html, чтобы конвертировать localhost.crt
в localhost.der
. Затем я создаю папку raw
в папке root resources
моего приложения и вставляю туда localhost.der
. Я добавил это к моему config.xml
:
<resource-file src="resources/raw/localhost.der" target="app/src/main/res/raw/localhost.der" />
Однако, я все еще получаю эту ошибку:
Не удалось установить соединение TLS: javax. net .ssl.SSLHandshakeException: java .security.cert.CertPathValidatorException: доверительный якорь для пути сертификации не найден.
Я думал, что это исправит эту ошибку, но это не так. Я не уверен, что я делаю неправильно. Кто-нибудь может помочь?