【发布时间】:2019-07-09 08:53:01
【问题描述】:
我有使用 ASP.NET Core 2.1 创建的 REST API 应用程序。 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 是由我的不同应用程序启动的。我可以使用浏览器和 POSTMAN 连接到这个 REST API。
现在我想保护我与 REST API 的连接。我所做的是: 我在 Configure 方法的 Startup 类中添加了必要配置以强制安全连接:
app.UseHttpsRedirection();
我还执行了一个信任开发证书的代码:
dotnet dev-certs https --trust
情况是,当我尝试通过浏览器访问 web api 时出现错误:
localhost 拒绝连接。 试试:
检查连接
检查代理和防火墙
ERR_CONNECTION_REFUSED
另外,当我使用 POSTMAN 调用一些 REST API 方法时,我得到了错误:
得不到任何回应
我做错了什么?是否需要直接在 Kestrel 配置中指定证书?
【问题讨论】: