[英]Asp.Net Core 2.0 HTTP -> HTTPS on Kestrel
我正在学习基于Web的编程,目前选择在Asp.Net Core 2.0上工作。 我已经成功创建了一个包含2层Controllers Home&API的Web应用程序。 当从Home控制器使用GetAsync,PostAsync,PutAsync等调用API控制器时,Home控制器与我的视图直接交互。 最近,我决定将此应用程序移至HTTPS。 了解了自签名证书,并成功运行了该证书,但无法访问我的API。
关闭SSL后,我仍然可以使用Postman调用我的API。
我以前使用以下URI来调用我的API: http:// localhost:5667 / api / WebApi 。
var response = client.GetAsync(“SomeApi”)
response.Wait();
现在,我尝试使用URI: https:// localhost:5667 / api / WebApi,但在response.Wait().
处中断response.Wait().
请提供任何建议。 提前致谢
根据要求:这是我的Startup.cs的一部分
services.AddMvc(
options =>
{
options.SslPort=5667;
options.Filters.Add(new RequireHttpsAttribute());
}
);
services.AddAntiforgery(
options =>
{
options.Cookie.Name=“_af”;
options.Cookie.HttpOnly = true;
options.Cookie.SecurePolicy=CookieSecurePolicy.Always;
options.HeaderName=“X-XSRF-TOKEN”;
}
)
HTTP和HTTPS不能在同一端口上提供服务。 如果您的本地主机HTTP端点在5667上,那么您的HTTPS端点可能在5668上-尽管您可以在Kestrel将在启动时登录的信息中检查自己的端口号。
在生产中,HTTP通常通过端口80提供服务,而HTTPS通常通过端口443提供服务。如果没有另外指定,则为默认设置。
另外,您可能要考虑在Configure
块中启用HTTPS重定向 :
app.UseHttpsRedirection();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.