Rozważ maszynę Windows 2008 SP2 z IIS7. Zadanie polega na zastosowaniu certyfikatu i nazwy hosta do jedynej witryny na tym komputerze. Nagłówki hosta witryny muszą byćabc.123.example.com
Pierwszym krokiem było zainstalowanie .pfx w sklepie osobistym, co zakończyło się powodzeniem.
IIS7 znajduje certyfikat jako dostępny, ale nie pozwala na wprowadzenie nazwy hosta. Pole tekstowe nazwy hosta jest ZAWSZE wyłączone / wyszarzone, nawet przed wybraniem mojego certyfikatu. Usunąłem nawet domyślne wiązanie portu 80.
Pytanie: jak ustawić nazwę hosta dla tej witryny? Czy to kwestia tego, że ten certyfikat jest certyfikatem wieloznacznym? Rozumiem, że żądanie SSL przychodzi do serwera WWW, a nagłówek hosta w pakiecie jest szyfrowany. Dlaczego zatem IIS6 umożliwia określenie nagłówka hosta, a IIS7 nie?
Aktualizacja: certyfikat nie jest częścią problemu. Utworzyłem nową witrynę na komputerze, a po wybraniu wiązania https pole tekstowe nazwy hosta jest wyłączone.
źródło
Działa w GUI ...
Upewnij się tylko, że „przyjazna nazwa” instalowanego certyfikatu jest taka sama, jak nazwa wielu domen podana dla certyfikatu.
to znaczy. * .firma.com
jeśli wpiszesz „Ładną przyjazną nazwę” dla * .companydoman.com cert, podczas instalowania certyfikatu w IIS wyszarzy pole nagłówka nazwy hosta.
Jeśli użyjesz * .firma.com jako przyjaznej nazwy, jesteś złoty.
Bum.
źródło
Krótka odpowiedź jest taka, że do każdego adresu IP może być przypisany tylko jeden certyfikat, więc powiązanie certyfikatu będzie obowiązywać bez względu na nazwę hosta skierowaną na ten adres IP. Określenie nazwy hosta oznaczałoby, że możesz mieć wiele kombinacji nazwy hosta i certyfikatu na tym samym adresie IP i porcie (jak to możliwe w przypadku wpisów innych niż SSL), ale tak nie jest, więc pole jest niedostępne.
Bardziej kompletnym wyjaśnieniem jest to, że SSL szyfruje ruch, a częścią tego ruchu są nagłówki HTTP wysyłane przez przeglądarkę na serwer. Jednym z tych nagłówków byłby nagłówek „Host”, którego IIS używa do określenia, która witryna ma zostać załadowana żądaniem. Ponieważ certyfikat musi zostać załadowany, aby ustanowić bezpieczne połączenie PRZED wysłaniem nagłówków żądania, IIS musi wybrać certyfikat tylko na podstawie adresu IP i numeru portu, pozostawiając nagłówek „Host” na zimno jako czynnik determinujący która strona ma zostać załadowana, aby nie pozwoliły Ci wejść.
Oto artykuł, w którym szczegółowo opisano wewnętrzne funkcjonowanie połączenia SSL .
źródło
Odpowiedź SSLShopper nie działała dla mnie, ponieważ opuściła powiązanie bez nagłówka hosta i nie można go usunąć bez zerwania połączenia z certyfikatem. Oto metoda, której użyłem, aby ją uruchomić:
Uwaga: ta odpowiedź zakłada, że certyfikat został już wygenerowany, dodany do magazynu certyfikatów i dodany do IIS. Zakłada również, że nie chcesz żadnych innych powiązań z witryną oprócz SSL.
Najpierw musimy zebrać trochę informacji. Potrzebujemy skrótu, identyfikatora aplikacji i nazwy hosta.
Kroki
Otwórz wiersz polecenia
Zapisz skrót certyfikatu i identyfikator aplikacji
W wierszu polecenia:
Uwaga: Appcmd.exe można znaleźć w folderze c: \ windows \ system32 \ insetsrv. Być może trzeba będzie znajdować się w tym folderze, aby to polecenie działało.
źródło
Przyjęta tutaj odpowiedź jest myląca i nie sądzę, aby była poprawna w przypadku pytania. To nie powinna być zaakceptowana odpowiedź.
Problem
Masz wieloznaczny protokół SSL, taki jak
*.ipsum.com
i certyfikat jest zainstalowany, ale nie możesz wybrać nazwy hosta dla witryny w IIS, gdy próbujesz dodać powiązanie HTTPS, ponieważ pole tekstowe jest wyszarzone.Rozwiązanie
Z wieloznacznego protokołu SSL można korzystać z dowolnej subdomeny, wystarczy upewnić się, że uruchomiono przyjazną nazwę certyfikatu
*
. Wolę używać tej samej przyjaznej nazwy co domena wieloznaczna, np.*.ipsum.com
Możesz nazwać to dowolną istotą z gwiazdką:*foo
Podałem mojemu certyfikatowi niewłaściwe przyjazne imię, pomoc!
Od Windows 8 lub Server 2012 możesz pisać
certlm.msc
w menu Start, aby zarządzać certyfikatami dla komputera lokalnego. W poprzednich wersjach systemu Windows musisz zrobić coś nieco bardziej skomplikowanego:mmc.exe
od początkuFile
menu i wybierzAdd/Remove Snap-in...
lub naciśnij(Ctrl-M)
Certificates
przystawkę i naciśnij,Add >
a następnie wybierzComputer Account
kolejno, a następnieLocal Computer
w kolejnych oknach dialogowych, a następnie naciśnij,Finish
a następnieOK
zamknij okno przystawekW głównym oknie rozwiń,
Certificates (Local Computer)
aPersonal
następnieCertificates
będziesz mógł kliknąć certyfikat prawym przyciskiem myszy, kliknąć miejsce, wProperties
którym możesz zaktualizować przyjazną nazwę.Zamknij i otwórz Menedżera usług IIS, a następnie możesz ustawić nazwę hosta.
źródło
Właściwie możesz dodać nagłówek hosta za pomocą GUI, ale to zależy od nazwy certyfikatu ... jeśli podam przyjazną nazwę * .xyz.com mojemu symbolowi wieloznacznemu i wybiorę ten certyfikat, to jestem w stanie korzystać z GUI. jeśli przyjazna nazwa to coś w stylu xyzwildcard, a ja to wybieram, oznacza to, że wyświetla się w polu nagłówka hosta ...
Dziwne ... dziwne
źródło
Niektóre komputery nie pozwalają na edycję nazwy hosta, jeśli protokół zostanie zmieniony na https lub po dodaniu certyfikatu SSL. Usługi IIS mogą być czasem zrzędliwe.
To polecenie systemu Windows utworzy nowe powiązanie z protokołem „https” na porcie „443”, nazwie hosta „subdomain.domain.com”, nazwie witryny „name site”. Zmień te wartości (w cudzysłowach), aby spełnić Twoje wymagania. Będziesz wtedy musiał usunąć stare powiązanie, jeśli używa ono portu 443.
C:>
cd C:\Windows\System32\inetsrv
C: \ Windows \ System32 \ inetsrv>
appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']
źródło
Nazwę hosta można dodać tylko wtedy, gdy nazwa smażona wybranego certyfikatu będzie podobna do nazwy hosta * .xyz.com, a nazwę przyjazną dla certyfikatu można zmienić na * .xyz.com z mmc (Snap-in).
źródło
Myślę, że ten artykuł KB rzuci nieco światła na ten problem. Krótko mówiąc, nagłówki hosta HTTP 1.1 nie są obsługiwane podczas korzystania z protokołu SSL.
Prawdopodobnie uda Ci się użyć klucza metabazy SecureBindings. Np. Cscript.exe adsutil.vbs set / w3svc / websiteID / SecureBindings "ip.ip.ip.ip: 443: abc.123.mysite.com
źródło
Dlaczego MS wyjmuje to z GUI jest poza mną, ponieważ jeśli masz aplikację ASP.NET, która korzysta z plików licencji (licx), twoja strona nie będzie działać, ponieważ wyświetla się jako adres IP zamiast nazwy domeny . Muszą ZATRZYMAĆ WNIOSEK w każdej nowej wersji swojego oprogramowania - ludzie IT nie muszą być opieką nad dziećmi przez Microsoft! Rany!
źródło
Utworzyłem samopodpisany certyfikat za pomocą * .testcompany.com, wybrałem nowo utworzony (zaczynając od *) w rozwijanym menu Edycja wiążącego certyfikatu SSL, mam włączone pole tekstowe nazwy hosta, utworzyłem nazwę hosta jako 'webapi.b2c .com ”,
Zaktualizowałem plik hosts w C: \ Windows \ System32 \ drivers \ etc 127.0.0.1 webapi.b2c.com
Teraz mogę przeglądać witrynę jako „ https://webapp.b2c.com/ ”
źródło