【发布时间】:2017-04-25 19:42:26
【问题描述】:
如何在 Visual Studio 2017 中为项目启用 SSL?
在 VS15 中,我可以选择项目 -> 属性 -> 调试 -> 启用 SSL。此选项在 VS2017 中不可用。搬到哪里去了?
编辑:
我什至尝试编辑 .\vs\config\applicationhost.config 无济于事:
<listenerAdapters>
<add name="http" />
<add name="https" />
</listenerAdapters>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<site name="Filters" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51107:localhost" />
<binding protocol="https" bindingInformation="*:43107:localhost" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<webLimits />
编辑:
我尝试过的另一个选项是配置 Kestrel 以使用 HTTPS,但感觉很笨重,并且有点违背 IDE 的意义。这并不理想,因为我必须从 IIS 导出 localhost 的证书副本,而 IIS Express 仍然尝试在不同的端口上加载站点。
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel(options =>
options.UseHttps(new X509Certificate2("path/to/cert.pfx", "password")))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls("http://localhost:5100", "https://localhost:4300")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
遗憾的是,这在从 VS17 运行时不起作用。我第一次遇到 502.2(我认为)错误,现在我得到的只是 Chrome 中的无法连接错误。我可以在 PowerShell 中运行 dotnet run,它运行良好。
作为一种解决方法,它可以解决问题。但它看起来并不整洁。
【问题讨论】:
-
在最近对 Visual Studio 2017 RC 的更新中,这似乎发生了变化?我确实看到了 Enable SSL 选项,并且使用它对我来说效果很好。我确实必须set up my account to trust IIS certificates。
-
也可以看看这个问题:*.com/questions/43886818/…
标签: ssl https kestrel-http-server visual-studio-2017