Visual Studio 2017 Включить SSL
Как включить 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, и он отлично работает.
Как обходной путь, он делает трюк. Но это не кажется аккуратным.
Ответы
Ответ 1
Порты заблокированы в IIS Express, поэтому его не нужно запускать как Администратор...
Допустимые порты: 44300 - 44399
Проверьте статью сообщества Dev
https://developercommunity.visualstudio.com/content/problem/39430/changing-port-number-in-a-web-project-does-not-imm.html
Вы можете редактировать launchSettings.json, но порты ssl должны попадать в этот диапазон.
Ответ 2
Для тех, кто запускает asp.net core 1.x в Visual Studio 2017 RC, вы должны иметь возможность изменить строку "sslPort": 0 в файле launchSettings.json на любой номер порта, который вы хотели бы использовать для SSL. Это эффективно изменяет привязки в файле. \Vs\config\applicationhost.config, упомянутом в предыдущих ответах.
Ответ 3
Для Visual Studio 2017:
- В обозревателе решений щелкните правой кнопкой мыши проект > Свойства
- Выберите вкладку Отладка
- Отметьте Включить SSL
![введите описание изображения здесь]()
Ответ 4
Редактирование .\vs\config\applicationhost.config
действительно сработало для меня.
<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>
Однако он загружает приложение в браузере, используя порт не-https по умолчанию. Если вы вручную укажете свой браузер на порт 43107, он должен работать.
Edit
Это работало для меня несколько раз, но перестало работать. Последующее тестирование показало, что всякий раз, когда я нажимаю кнопку, чтобы начать отладку в VS 2017 RC, она удалит привязку, которую я добавил вручную.
Я исправил это, сделав файл только для чтения, теперь он снова начинается с поддержки HTTPS.
Ответ 5
В обозревателе решений щелкните правой кнопкой мыши имя вашего сайта и выберите "Окно свойств" или просто нажмите F4. В разделе Веб-сервер разработчика измените значение SSL Включено с False на True.
Ответ 6
Одним из важных моментов, которые вам могут быть не хватает, является то, что вы должны запустить Visual Studio в качестве adminsitrator (правый значок vlick VS и выбрать "Запуск от имени администратора".
Я боролся с этой проблемой SSL, и после того, как я провел VS в качестве администратора, я заставил ее работать.