繁体   English   中英

Asp.Net Core 2.0 HTTP-> Kestrel上的HTTPS

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM