Как включить SSL для проекта в Visual Studio 2017?
В VS15 я могу выбрать Project → Properties → Debug → Enable SSL. Эта опция недоступна в VS2017. Куда он переместился?
Edit:
Я даже пробовал редактировать .\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 />
Edit:
Еще один вариант, который я пробовал, который просто чувствует неуклюжесть и какие-то поражения в среде IDE, заключается в том, чтобы настроить Kestrel на использование HTTPS. Это не идеально, поскольку мне пришлось экспортировать копию сертификата для локального хоста из IIS, а 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. Я могу запустить dotnet run
из PowerShell, и он отлично работает.
Как обходной путь, он делает трюк. Но это не кажется аккуратным.