【问题标题】:SSL in Asp.Net Core doesn't workAsp.Net Core 中的 SSL 不起作用
【发布时间】:2016-10-12 10:20:30
【问题描述】:

我从 Visual Studio Web Application(Net.Core) 模板创建了一个简单的 Web 应用程序,具有个人用户帐户授权。

然后,我在Project->MyProject Properties... 中启用了 SSL,将带有 https 的 URL 复制到了 App Url。

最后,我补充说:

services.AddMvc(options =>
{
    options.Filters.Add(new RequireHttpsAttribute());
});

Startup

而且它不起作用!当我启动应用程序时,它只是在一秒钟后关闭,什么都没有发生,没有错误,什么都没有!

Asp.Net Core 中的 SSL 有什么问题,如何正确启用它?

【问题讨论】:

  • 如果我理解正确,您应该在反向代理服务器(IIS 或 nginx)上使用 SSL 卸载,而在 Kestrel 上它应该只处理 HTTP。目前没有文档,docs.asp.net/en/latest/security/enforcing-ssl.html
  • @LexLi 如果是正确的,我该怎么做?
  • 您是否使用 IIS Express 在 VS 中托管它?然后你可以尝试使用 Jexus Manager 将 HTTPS 绑定添加到网站,jexusmanager.com
  • @LexLi 是的,我正在使用 IIS Express。它已经有控制台,也许我应该使用它的控制台?
  • Lex Li - IIS Express 已经完成了 SSL 卸载。并且无需使用任何第三方工具,只需在调试设置中配置即可。

标签: c# asp.net ssl asp.net-core


【解决方案1】:

对于开发测试,您需要先启用 SSL。

右键项目>属性>调试

  • 在配置文件中选择“IIS Express”
  • 勾选“启用 SSL”

如果您的调试在启动后停止(未找到进程 ID),那么您必须将 IIS Express 自签名证书安装到证书存储中。

您可以按照本指南here。它有点旧,但仍适用于 Visual Studio 2015。这是由于更新 3 中的错误导致 IIS 证书未正确安装在受信任的证书存储中。

或者,

  1. 按 Win+R,输入运行“mmc.exe”
  2. 文件>添加管理单元>选择“证书”>添加>计算机帐户>下一步>完成
  3. 点击确定
  4. 转到“个人/证书”。寻找“本地主机”证书
  5. 将证书拖放到“受信任的根证书颁发机构”
  6. 关闭 MMC。重启 Visual Studio 2015

现在您应该可以调试它了。

【讨论】:

  • 谢谢,为什么默认不启用?
  • @Madailei:现在应该是了。答案与在 Visual Studio 2015 上运行的 ASP.NET Core 1.0 有关。较新的模板和 VS 2017.8 应该已经使用 SSL 创建新项目。当时的另一个问题是,没有用于开发人员证书的工具。新的 .NET Core SDK 安装了开发人员证书,因此无需手动干预证书即可使其在浏览器中受信任
  • 此外,这些天我们不使用[RequireHttps] 属性,而是使用中间件,请参阅docs.microsoft.com/en-us/aspnet/core/security/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2022-10-01
  • 2018-12-20
  • 2019-12-01
相关资源
最近更新 更多