Как разрешить все https независимо от действительности в .NET Core HttpClient? - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю веб-API в .NET Core. Для локальной отладки я создал консольное приложение, которое подключается к моему API. Я отлаживаю в Linux.

При подключении к моему локальному URL-адресу https://localhost:5001/, мое консольное приложение выдает исключение AuthenticationException (удаленный сертификат недействителен в соответствии с процедурой проверки).

Я пытался обойти это двумя способами:

  1. Добавили ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;, но это не имеет никакого эффекта.

  2. Я пробежал dotnet dev-certs https --trust. Теперь мой веб-браузер больше не жалуется, что приятно, но мое консольное приложение по-прежнему выдает исключение. Попробовал перезагрузку.

Как заставить .NET Core доверять моему локальному серверу? Или игнорировать срок действия сертификата?

Ответы [ 3 ]

0 голосов
/ 15 апреля 2019

Я нашел решение:

var httpClientHandler = new HttpClientHandler();

httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true; // DEBUGGING ONLY

var httpClient = new HttpClient(httpClientHandler);

Хотя мне все еще неясно, почему сертификат не считается действительным после запуска dotnet dev-certs https --trust.

0 голосов
/ 15 апреля 2019

Определите эту функцию:

public static void IgnoreBadCertificates()
{
    System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
}

private static bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
    return true;
}

И используйте верхнюю часть программы следующим образом:

IgnoreBadCertificates();
0 голосов
/ 15 апреля 2019

Вы должны доверять сертификату на своем компьютере, импортировав его в хранилище сертификатов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...