【问题标题】:How to Use HTTPS with Microsoft.AspNet.Server.WebListener如何在 Microsoft.AspNet.Server.WebListener 中使用 HTTPS
【发布时间】:2016-11-12 07:06:37
【问题描述】:

本文末尾http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6 描述了如何使用 Microsoft.AspNet.Server.WebListener 在控制台应用程序中托管 MVC6 应用程序。

如何在 weblistener 中使用 https?我尝试从 http 和 https 更改 project.json "commands": {"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"} 中的 url,但这没有用(尽管我认为这可能不会那么容易)

--server.urls 参数的格式是什么以允许多个端点(即 http 和 https)?

【问题讨论】:

  • 如果您要接受另一个问题的答案,能否修改问题?
  • 也许我不应该在同一篇文章中问两个相关的问题。我没有修改问题,而是撤销了答案(对不起 Dusten)。我对达斯滕回答的评论使这两个问题无论如何都没有实际意义(至少出于我的目的)。我发现在 localhost 上不使用 https 并且通过编写一个需要 https 的属性(除了使用 localhost 时)更方便,我不必担心在测试时注释掉 requirehttps 然后不小心将其签入。还有其他方法,但是这种方式对我很有效。

标签: asp.net-core


【解决方案1】:

分号是分隔符。

例子:

"web": "Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:12345;http://mydomain.stackoverflow.com:12345"

【讨论】:

  • 谢谢,适用于多个 URL。我仍然不确定在控制台应用程序中托管时如何使用 SSL,但我怀疑在自托管 OWIN 应用程序时该过程与 SSL 相似(如果不等效)。使用 netsh 进行配置很痛苦,新开发人员有很多机器配置要做。我决定覆盖 RequireHttpsAttribute 以便它在 localhost 上运行时不需要 https。可以在以下位置找到一个粗略的示例:github.com/npnelson/RequireHttpsExceptForLocalHostAttribute.git
【解决方案2】:

对于 https,我让它工作的唯一方法是在你的 project.json 中添加以下条目:

"web": "Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=https://+:12345;

确保使用以下方式安装自签名或商业购买的公共 SSL 证书:

netsh http add sslcert

命令行工具或使用 Steve http://www.stevestechspot.com/HttpConfigUpdate.aspx 提供的非常好的 GUI 工具。另外,请记住使用以下命令授予权限:

netsh add urlacl url=http://+:12345 /yoururl user=Everyone

【讨论】:

  • 嗯...您的答案看起来应该可以工作(尽管我认为您想将netsh add... 命令编辑为netsh **http** add...)。不幸的是,我无法得到您的答案,但我尝试过的机器不是很干净。有机会我会在更干净的机器上再试一次并报告。
猜你喜欢
  • 1970-01-01
  • 2014-05-04
  • 2014-05-24
  • 2013-09-21
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多