HTTPS со встроенным сервером разработки ASP.NET Visual Studio

111

Есть ли способ получить доступ к встроенному серверу разработки ASP.NET Visual Studio через HTTPS?

Шон Миллер
источник
2
См. Ответ от @Guru Kara - «отмеченный ответ» устарел
Роб
8
Я обновил принятый ответ
Шон Миллер

Ответы:

143

На данный момент мы можем использовать IIS Express для разработки и тестирования SSL. Вот полная статья, объясняющая, как использовать IIS Express и Visual Studion 2010 для разработки веб-сайтов с использованием SSL.

введите описание изображения здесь

следующий

введите описание изображения здесь

Тогда вы получите это

введите описание изображения здесь

Работать с SSL во время разработки стало проще с IISExpress

Представляем IIS Express

Гуру Кара
источник
7
Этот ответ следует увеличить, принятый ответ очень устарел. Я успешно использовал методы из связанной статьи, чтобы запустить SSL через VisualStudio 2010 и IIS Express
Том Уэйсон
3
Тогда просто не забудьте использовать URL-адрес SSL из этого окна свойств, потому что, если вы не изменили его, в следующий раз, когда вы начнете отладку, он все равно будет использовать URL-адрес без SSL (очевидно, но легко не заметить ...)
BornToCode 06
При использовании я получаю "Недействительное имя хоста".
MrFox
Похоже, это не работает с VS2017. IISExpress должен прочитать applicationhost.config в папке /.vs/config/ решения. Кто-нибудь знает секрет этой работы?
MC9000
Для меня это вроде работает (Сообщество VS 2017). Когда я отлаживаю, мне нужно вручную скопировать / вставить URL-адрес SSL в браузер ... просто нажав кнопку отладки в среде IDE, я перейду к версии без SSL.
John Riehl
38

Cassini не поддерживает HTTPS.

Однако вы можете использовать IIS для этого. Если вы используете IIS 5.1, загрузите пакет инструментов MS IIS для IIS 6.0, он поставляется с инструментом для создания самоподписанных сертификатов SSL. Это работает на IIS 5.1

http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en

Единственный необходимый вам инструмент (SelfSSL.exe) отлично работает с IIS 5.1. К сожалению, он поставляется в комплекте с множеством других вещей.

шаги:

  • Установите файл инструментов IIS. Если вы хотите, вы можете нажать Custom и указать ему устанавливать только SelfSSL.
  • Активируйте сайт в IIS, на котором вы также хотите установить сертификат SSL.
  • Перейдите в Пуск / Программы / Ресурсы IIS / SelfSSL.
  • Это запустит командную строку в каталоге SelfSSL.
  • Используя предоставленную справку, запустите SelfSSL. Я использовал следующую команду: selfssl.exe / N: cn = [MACHINENAME] / K: 1024 / V: 90 / S: 5 / P: 443.
  • Параметр / S указывает, на каком сайте установить сертификат. Вы можете определить это число, посмотрев на свои сайты в IIS и посчитав (начиная с 1 для первого сайта, а не с 0) до нужного сайта.
  • Как только это запустится, перейдите на свой локальный хост через HTTPS.
  • Вы должны получить сообщение об ошибке о том, что этот сертификат получен из ненадежного источника. Вы можете либо добавить свое имя машины в список доверенных органов браузера, либо указать браузеру, чтобы он игнорировал это.

На этом этапе вы сможете запускать свой локальный хост через HTTPS.

FlySwat
источник
1
Нет причин использовать дурацкий встроенный веб-сервер VS. Зачем использовать это, когда вы в первую очередь должны использовать IIS. Познакомьтесь с IIS, перестаньте говорить, что просто использовать кнопку «Создать виртуальный каталог» в VS слишком сложно и сложно, что упрощает создание такого каталога в IIS. А затем познакомьтесь с IIS. Пора разработчикам перестать этого бояться. Познакомьтесь с пулами приложений и т. Д. В остальном я видел, что большинство разработчиков, использующих встроенный сервер, невежественны, когда дело касается IIS. Плохо для вашей карьеры, если вы разработчик. Еще пара шагов для отладки, ну и что.
PositiveGuy
3
См. Ответ Гуру Кара ... IIS Express - лучший ответ
Ли Гарольд
12

Вилко Бауэр написал сервер веб-разработки, который будет поддерживать https. Он один из разработчиков, которые работали над Cassini Visual Studio 2005, встроенной в веб-сервер. WebDev.WebServer2

Аарон Фишер
источник
1
Ссылка больше не доступна, но вы можете получить ее через web.archive.org/web/20080123212335/http://www.wilcob.com/Wilco/…
labilbe 06
1
Ссылка снова доступна.
Скотт Стаффорд
Большое спасибо за это, никогда не знал, что есть класс HttpListener, который вы изменили мой мир!
Питер
2

Выберите файл проекта в обозревателе решений: например: «WebApplication1».

Нажав ALT + ENTER, вы вводите свойства проекта.

Выберите «DEBUG» на левой стороне .

Здесь вы можете выбрать «Включить SSL» .

Затем вы можете начать свой проект с IIS Express в обычном режиме, и он начнет использовать SSL, новый порт будет 44301.

MrzJkl
источник
1
Буду
Что ты хочешь узнать?
MrzJkl
3
Раздел «DEBUG» в свойствах проекта существует для .NET Core WebApplications. Для .NET Framework WebApplication - выберите веб-проект, нажмите F4 (чтобы открыть окно «Свойства») - есть свойство «Включить SSL»
Сергей Смольников
Спасибо, Сергей. Я не смог найти этого, поскольку он не отображается на странице настроек проекта. Только под обозревателем решений при нажатии F4!
Норберт Норбертсон,