Jak używać protokołu https / SSL na hoście lokalnym?

88

Chciałbym wiedzieć, jak skonfigurować SSL w mojej aplikacji internetowej na hoście lokalnym.

Nie mam w tym żadnego doświadczenia, byłbym wdzięczny za wskazówki. Skończyłem już wdrażanie mojej aplikacji internetowej i potrzebuję, aby korzystała z protokołu HTTPS na hoście lokalnym lub gdy hostuję ją na serwerze.

Jakieś pomysły?

Pozdrowienia.

HShbib
źródło
Sprawdź podobny post: stackoverflow.com/questions/36037510/ ...
Pusker György

Odpowiedzi:

23

Jeśli masz IIS Express (z programem Visual Studio):

Aby włączyć SSL w IIS Express, wystarczy ustawić „SSL Enabled = true” w oknie właściwości projektu.

Zobacz kroki i obrazy w tym projekcie kodu .

IIS Express wygeneruje dla Ciebie certyfikat (zostaniesz o to poproszony itp.). Zwróć uwagę, że w zależności od konfiguracji witryna może nadal automatycznie rozpoczynać się od adresu URL zamiast adresu SSL. Możesz zobaczyć URL SSL - zanotuj numer portu i zastąp go w pasku adresu przeglądarki, powinieneś być w stanie wejść i przetestować.

Stamtąd możesz kliknąć prawym przyciskiem myszy swój projekt, kliknąć strony właściwości, a następnie uruchomić opcje i przypisać początkowy adres URL - wstaw nowy https z nowym portem (zwykle 44301 - zwróć uwagę na podobieństwo do portu 443) i od tego momentu projekt rozpocznie się poprawnie na.

wprowadź opis obrazu tutaj

JackArbiter
źródło
Czy mogę wybrać port? tzn. użyj domyślnego portu https; port 443?
Czerwony groszek
1
@TheRedPea W każdym przypadku, gdy się zetknąłem, musisz użyć portu 44301, aby przetestować lokalnie zamiast portu 443. Nie wpłynie to na porty używane dla twojego serwera na żywo (które wiążesz w IIS), który prawie zawsze będzie 443 zakładając, że używasz protokołu https.
JackArbiter
21

Utworzenie certyfikatu z podpisem własnym, zaimportowanie go i powiązanie z witryną jest łatwe.

1.) Utwórz certyfikat z podpisem własnym:

Uruchom następujące 4 polecenia, pojedynczo, z poziomu wiersza polecenia z podwyższonym poziomem uprawnień:

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.) Importuj certyfikat do magazynu zaufanych głównych urzędów certyfikacji:

start -> uruchom -> mmc.exe -> Wtyczka certyfikatów -> "Zaufane główne urzędy certyfikacji" -> Certyfikaty

Kliknij prawym przyciskiem myszy Certyfikaty -> Wszystkie zadania -> Importuj Znajdź swój certyfikat „localhost” w C: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x64 \

3.) Powiąż certyfikat ze stroną internetową:

start -> Menedżer (IIS) -> Kliknij serwer -> Kliknij Witryny -> Kliknij witrynę najwyższego poziomu -> Powiązania

Dodaj lub edytuj powiązanie dla https i wybierz certyfikat SSL o nazwie „localhost”.

4.) Importuj certyfikat do Chrome:

Ustawienia Chrome -> Zarządzaj certyfikatami -> Importuj certyfikat .pfx z folderu C: \ certyfikaty \

Przetestuj certyfikat, otwierając Chrome i przechodząc do https: // localhost /

Jason Williams
źródło
W jaki sposób otrzymujesz pliki, których właśnie użyłeś w poleceniu makecert? localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc. Jak uzyskać plik private.key, aby utworzyć plik allinone.pem do użytku na innych serwerach internetowych niż IIS?
Jeśli nie chcesz importować certyfikatu do Chrome, możesz wyłączyć funkcję zabezpieczeń Chrome, która blokuje dostęp do certyfikatów z podpisem własnym na localhost stackoverflow.com/a/31900210/2733283
Jason Williams
8

To pytanie jest naprawdę stare, ale trafiłem na tę stronę, gdy szukałem najłatwiejszego i najszybszego sposobu, aby to zrobić. Korzystanie z WebPacka jest znacznie prostsze:

zainstaluj webpack-dev-server

npm i -g webpack-dev-server

uruchom serwer webpack-dev-server z https

webpack-dev-server --https
brianyang
źródło
2
Będzie to obsługiwać pliki js, które tworzą aplikację, ale jej nie uruchamiają.
user1944491
Czy można go używać razem z istniejącym serwerem deweloperskim, takim jak XAMPP?
Prometeusz