«java.безопасность.сертификат.Исключение CertPathValidatorException: Якорь доверия для пути сертификации не найден». Android Модернизация Asp.net API

#android #asp.net #ssl-certificate #self-signed #ca

Вопрос:

Я пытаюсь использовать RestAPI из asp.net запуск на (локальном компьютере). Я проследил за точными шагами дальше https://developer.android.com/training/articles/security-config#ConfigCustom в (Настройка пользовательского ЦС)

но без успеха, всегда появляется одна и та же ошибка «java.security.cert.Исключение CertPathValidatorException: Якорь доверия для пути сертификации не найден».

Шаги, которым я следовал:

1 — Экспортировал самозаверяющий центр сертификации в .der из (Доверенных корневых центров сертификации), преобразовал его в .pem, я взял копию .pem и вставил(добавил) в необработанный каталог.

2 — Создан «network_security_config».

 <network-security-config>
<domain-config>
    <domain includeSubdomains="true">10.0.2.2</domain>
    <trust-anchors>
        <certificates src="@raw/localhost"/>
    </trust-anchors>
</domain-config>
</network-security-config>
 

3 — Модифицированный андроидный манифест:

 <application    
   android:networkSecurityConfig="@xml/network_security_config"
   ...
</application
 

Наконец: в модифицированном базовом(«https://10.0.2.2:5001/api/»)

введите описание изображения здесь

Комментарии:

1. пожалуйста, добавьте свои соответствующие коды здесь…

Ответ №1:

Сделайте что-нибудь вроде этого:

 <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">192.168.0.106</domain>
    </domain-config>
</network-security-config>
 

Только что проверил с помощью фиктивного загрузочного сервера Spring и мини-приложения для Android.

Вы можете проверить свои открытые порты(Ubuntu):

 sudo ufw app list
 

И добавьте новый порт, например(Ubuntu):

 sudo ufw allow 8080
 

Я сейчас не использую компьютер с Windows. Поэтому я не могу сказать, как включить его там. Но на самом деле было несколько способов сделать это.

Комментарии:

1. Я тоже сделал это с помощью spring boot, даже без конфигурации безопасности, и она отлично работает. Однако это не относится к Asp.net

2. пожалуйста, проверьте ответ еще раз… @Салим , может быть, порт не просто открыт…

3. я оцениваю вашу цену. Тем не менее, в соответствии с заданным вопросом, вопрос стоит Asp.net как серверная часть, а не пружинная загрузка. К вашему сведению , я протестировал его на springboot, прежде чем инициировать вопрос, и работал нормально.