Как вы используете https / SSL на локальном хосте?

88

Я хотел бы знать, как настроить SSL в моем веб-приложении на локальном хосте.

У меня нет опыта в этом, я буду благодарен за руководство. Я уже завершил реализацию своего веб-приложения, и мне нужно, чтобы оно использовалось для использования https на локальном хосте или пока я размещаю его на сервере.

Любые идеи?

С уважением.

HShbib
источник
Отметьте похожий пост: stackoverflow.com/questions/36037510/…
Pusker Gyögery

Ответы:

23

Если у вас есть IIS Express (с Visual Studio):

Чтобы включить SSL в IIS Express, вам нужно просто установить «SSL Enabled = true» в окне свойств проекта.

См. Шаги и изображения в этом проекте кода .

IIS Express сгенерирует для вас сертификат (вам будет предложено его ввести и т. Д.). Обратите внимание, что в зависимости от конфигурации сайт может по-прежнему автоматически запускаться с URL-адреса, а не с URL-адреса SSL. Вы можете увидеть URL-адрес SSL - обратите внимание на номер порта и замените его в адресной строке браузера, вы сможете войти и протестировать.

Оттуда вы можете щелкнуть правой кнопкой мыши свой проект, щелкнуть страницы свойств, затем запустить параметры и назначить начальный URL-адрес - поместите новый https с новым портом (обычно 44301 - обратите внимание на сходство с портом 443), и ваш проект будет запускаться правильно с этого момента. на.

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

Джек Арбитр
источник
Могу я выбрать порт? т.е. использовать порт https по умолчанию; порт 443?
The Red Pea
1
@TheRedPea В каждом случае, с которым я сталкивался, вам нужно использовать порт 44301 для локального тестирования вместо порта 443. Это не повлияет на порты, которые вы используете для своего живого сервера (который вы привязываете в IIS), который почти всегда будет 443 предполагая, что вы используете https.
JackArbiter
21

Создать самозаверяющий сертификат, импортировать и привязать его к своему веб-сайту легко.

1.) Создайте самоподписанный сертификат:

Выполните следующие 4 команды по очереди из командной строки с повышенными привилегиями:

cd C:\Program Files (x86)\Windows Kits\8.1\bin\x64

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3 -sv localhost.pvk localhost.cer

cert2spc localhost.cer localhost.spc

pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

2.) Импортируйте сертификат в хранилище доверенных корневых центров сертификации:

начало -> запустить -> mmc.exe -> Плагин сертификатов -> «Доверенные корневые центры сертификации» -> Сертификаты

Щелкните правой кнопкой мыши «Сертификаты» -> «Все задачи» -> «Импорт». Найдите свой сертификат «localhost» в папке C: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x64 \

3.) Привязать сертификат к сайту:

Пуск -> (IIS) Manager -> Щелкните свой сервер -> Щелкните Сайты -> Щелкните сайт верхнего уровня -> Привязки

Добавьте или отредактируйте привязку для https и выберите сертификат SSL с именем «localhost».

4.) Импортировать сертификат в Chrome:

Настройки Chrome -> Управление сертификатами -> Импортировать сертификат .pfx из папки C: \ Certificates \

Тестовый сертификат, открыв Chrome и перейдя по адресу https: // localhost /

Джейсон Уильямс
источник
Как получить файлы, которые вы только что использовали в команде makecert? localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc. Как мне получить файл private.key, чтобы файл allinone.pem использовался на других веб-серверах, а не в IIS?
Если вы не хотите импортировать сертификат в Chrome, вы можете отключить функцию безопасности Chrome, которая блокирует доступ к самозаверяющим сертификатам на localhost stackoverflow.com/a/31900210/2733283
Джейсон Уильямс,
8

Этот вопрос действительно старый, но я наткнулся на эту страницу, когда искал самый простой и быстрый способ сделать это. Использовать Webpack намного проще:

установить webpack-dev-server

npm i -g webpack-dev-server

запустите webpack-dev-server с https

webpack-dev-server --https
Brianyang
источник
2
Это будет обслуживать файлы js, составляющие приложение, но не запускать приложение.
user1944491
Можно ли это использовать вместе с существующим сервером разработки, таким как XAMPP?
Prometheus