Принимайте самоподписанные сертификаты в Android Xamarin - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть проект Xamarin Forms , и внутри файла MainPage.xaml.cs я хочу выполнить запрос к своему серверу.Сервер написан на ASP.NET Core 2 и работает с самозаверяющим сертификатом.

Купить сертификат - это не решение моей проблемы, потому что клиенты этого не делаютхотите, чтобы приложение работало только в локальной сети.

В моем файле MainPage.xaml.cs Http-запрос выглядит так:

HttpClient m_Client = new HttpClient();
var uri = new Uri(myURL);

var response = await m_Client.GetAsync(uri);

if (response.IsSuccessStatusCode)
{
    ...
}

Пока все хорошо.Если я запускаю приложение на Android и пытаюсь выполнить запрос, Android выдает исключение SSL для того, чтобы не найти CA для моего сертификата.

Как я могу общаться с моим сервером, используя самозаверяющий сертификат?

Я посмотрел на проблему и нашел много решений, таких как:

ServicePointManager
        .ServerCertificateValidationCallback +=
        (sender, cert, chain, sslPolicyErrors) => true;

Если выдобавьте этот код в файл MainActivity.cs в вашем проекте Android, он должен принять все сертификаты.Но это не работает для меня.Кажется, этот метод никогда не вызывается.

Есть какие-нибудь предложения, как сделать так, чтобы общение происходило?

С уважением

...