Почему возникает ошибка "Unable to verify the first certificate" в Postman при http запросе?
я столкнулся со странной ситуацией, которую не могу объяснить.
Создаю в папке TestByPostman простой проект NET Core типа webapi. (dotnet new webapi
, dotnet new sln
)
Всё по умолчанию (создаётся шаблон WeatherForecast), вот ссылка на github, папка TestByPostman
Запускаю проект в дебаге. Он пишет в консоль, что:
Now listening on: https://localhost:7182
Now listening on: http://localhost:5055
Ввожу вот этот адрес в postman:
http://localhost:5055/weatherforecast/
И, вместе с Json-ом с погодой и кодом 200 я получаю еще и ошибку, которая отображается как "красный глобус с треугольником" и формулируется как "Unable to verify the first certificate"
Но! откуда вообще здесь взялись сертификаты, ведь я обращаюсь к тестовому проекту по http, по не-шифрованному протоколу? (который вообще текстовый, и набрать "GET / HTTP/1.0" можно просто в строке телнета)
Продолжаем эксперимент.
Теперь я создаю консольный проект, добавляю в него зависимость от Microsoft.AspNetCore.App и "вручную" конфигурирую Kestrel, заставляя его "повеситься" на тот же порт 5055.
В остальном - я повторяю код, который выводит случайный набор "погодных явлений", и делаю в проекте такой же роутинг - просто для наглядности. Ссылка на github - та же, папка TestUsingKestrel
И при таком запуске проекта введенный в postman запрос не показывает никаких ошибок. Просто json, код 200 - и всё! - см. картинку 2:
Также, при нажатии на "волшебные стрелочки" (на картинке обведены зеленым) генерируются одинаковые curl-запросы:
curl --location 'http://localhost:5055/weatherforecast/'
Ну это естественно, у нас в проекте повторяется всё, за исключением того, что теперь https нет и в помине.
Я бы не стал поднимать этот вопрос, но если вместо postman'а к такому проекту (типа TestByPostman) обращается (по http!) реальный код, то он отваливается с эксепшеном "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel." - см. картинку 3:
[
Сравнивал запросы, сравнивал клиентов, вот только с wireshark'ом за пакетами не охотился. Хочу понять, откуда берется такая страннная ошибка, связанная как будто с сертификатом и/или защищенным соединением, при работе с обычным http.