Zine.net online

Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc
w Szukaj

IDeveloper

  • Konfiguracja SSL dla localhost w IIS7

    Ostatnio musiałem chwilę spędzić aby wygooglać jak skonfigurować SSL w dla IIS tak abym mógł lokalnie testować moje strony/serwisy korzystając z protokołu https. Czego szukałem: jak skonfigurować SSL w IIS7 tak abym mógł użyć podczas dewelopmentu adresu https://localhost/samplesite/sampleservice.svc do testowania i debugowania serwisu WFC.

     

    Oto krótki opis krok po kroku jak skonfigurować SSL dla virtual directory w IIS7:

    1. Generujemy certyfikat:

    makecert -n "CN=localhost" -r -sv localhost.pvk localhost.cer

    2. Dodajemy wygenerowany certyfikat do Trusted Root Certification Authorities dla Local Computer

    3. Generujemy plik PFX komendą:

    pvk2pfx.exe -pvk localhost.pvk -spc localhost.cer -pfx localhost.pfx -po XXXXX

    XXXXX to nowe hasło do PFX, przy generowaniu należy podać zdefiniowane wcześniej hasło do certyfikatu wygenerowanego w #1.

    4. Importujemy wygenerowany plik PFX do Server Certificates w IIS

     

    Tak wygenerowany i zarejestrowany certyfikat wystarczy aby włączyć SSL dla website w IIS jednakże przeglądarka będzie ostrzegać przez nieznanym certyfikatem a próba dostępu do serwisu będzie generowała wyjątek: “Could not establish trust relationship for the SSL/TLS secure channel with authority 'NAZWA_KOMPUTERA'.”. Aby temu zaradzić należy wygenerować i ustawić w bindingu website certyfikat typu Self Signed, który będzie rozpoznawany jako w pełni akceptowany zarówno przez przeglądarkę jak i przez np. svcutil.

    IIS7 umożliwia wygenerowanie certyfikatu typu Self Signed jednakże wygenerowany z IISa certyfikat ma jedną wadę – mimo że nasz certyfikat był wygenerowany dla CN=localhost wygenerowany za pomocą IIS certyfikat ma CN=NAZWA_KOMPUTERA co skutkuje kolejnym ostrzeżeniem przeglądarki gdy skorzystamy z adresu https://localhost/samplesite (gdy adres będzie w formie https://NAZWA_KOMPUTERA/samplesite przeglądarka nie pokazuje żadnych ostrzeżeń).

    Rozwiązaniem tego problemu są kolejne kroki:

     

    5. Generujemy certyfikat typu Self Signed używając SelfSSL (z IIS6 Resource Kit):

    selfssl.exe /N:CN=localhost /S:1 /V:365

    Parametr /S to ID website w IIS w którym chcemy zainstalować certyfikat, /V to liczba dni ważności certyfikatu (domyślnie 7).

    6. Dodajemy wygenerowany certyfikat Self Signed do Trusted Root Certification Authorities dla Local Computer

    7. Dodajemy do naszej strony w IIS binding dla HTTPS (domyślny port 443) i ustawiamy dla niego nasz Self Signed certyfikat.

    8. Dla wybranego katalogu wirtualnego w SSL Settings zaznaczamy Require SSL.

     

    Źródła z których korzystałem walcząc o SSLa na localhost ;) Zawierają bardziej szczegółowe opisy kolejnych kroków.

    opublikowano 13 lutego 2009 03:29 przez mpraglowski | 3 komentarzy
    Filed under:
W oparciu o Community Server (Personal Edition), Telligent Systems