У меня есть приложение REST API, созданное с использованием ASP.NET Core 2.1.REST API создается WebHostBuilder и поддерживается Kestrel.
Startup.Kernel = kernel;
_restApiServer = new WebHostBuilder()
.UseKestrel(options =>
{
})
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls(string.Format("http://localhost:{0}", _configuration.PortNumber))
.UseSetting("https_port",_configuration.HttpsPort.ToString())
.Build();
_restApiServer.Run();
REST API по умолчанию обслуживается через порт 8998.Этот REST API запускается моим другим приложением.Я могу подключиться к этому API REST, используя браузер и POSTMAN.
Теперь я хотел бы защитить свое соединение с REST API.Я сделал следующее: я добавил необходимую конфигурацию для принудительного создания безопасного соединения в своем классе запуска в методе Configure:
app.UseHttpsRedirection();
И я также выполнил код для доверия сертификатам разработчика:
dotnet dev-certs https --trust
Дело в том, что, когда я пытаюсь получить доступ к веб-API через браузер, я получаю сообщение об ошибке:
localhost отказывается подключиться.Попробуйте:
Проверка соединения
Проверка прокси и брандмауэра
ERR_CONNECTION_REFUSED
Также, когда я использую POSTMAN для вызова некоторого REST APIметоды, которые я получил и ошибка:
Не удалось получить ответ
Что я делаю не так?Нужно ли указывать сертификат непосредственно в конфигурации Kestrel?