2007 10 Konfiguracja serwera IIS dla ASP NET z protokołem SSL

background image

www.hakin9.org

hakin9 Nr 10/2007

62

Obrona

R

ozpoczniemy od instalacji serwera
IIS na platformie Windows XP SP2.
W kolejnym kroku skonfigurujemy

go tak, aby działały na nim strony ASP.NET.
Na koniec dodana będzie obsługa protoko-
łu SSL.

Zasada ograniczonego zaufania leży u

podstaw użytkowania Internetu. Nie wol-
no instalować kontrolek ActiveX nieznanych
producentów. Nie należy odwiedzać podej-
rzanych stron WWW. Lepiej nie otwierać za-
łączników poczty nieznanego pochodzenia
itd. Można byłoby wymieniać i wymieniać,
czego to nie można robić surfując po Inter-
necie. Jednak pomimo wielu zagrożeń, skle-
py internetowe to dziś codzienność, a ban-
kowość elektroniczna rozwija się w najlep-
sze. To wszystko stało się możliwe dzięki
protokołom umożliwiającym jednoznaczną
identyfikację witryny WWW i pozwalającym
na bezpieczną transmisję danych pomiędzy
klientem a serwerem. Mowa tu oczywiście o
protokole SSL (ang. Secure Sockets Layer)
lub TLS (ang. Transport Layer Security) i ko-
rzystającym z niego protokole HTTPS (ang.
secure HTTP). Aby zaimplementować proto-
kół SSL, administrator serwera WWW musi

wygenerować klucz publiczny. Klucz ten po-
winien być następnie podpisany przez jed-
ną z organizacji zajmujących się potwierdza-
niem tego typu kluczy (ang. certificate autho-
rity – CA
).

Konfiguracja serwera IIS

dla ASP.NET

z protokołem SSL

Sławomir Orłowski, Jacek Matulewski

stopień trudności

Każdy, nawet najprostszy, projekt powinien zostać

przetestowany. Niniejszy artykuł opisze, w jaki sposób możemy

lokalnie sprawdzić działanie witryny ASP.NET, która wymaga

uwierzytelnienia typu SSL. Jest on skierowany przede wszystkim

do programistów .NET.

Z artykułu dowiesz się

• jak do celów testowych zainstalować i skon-

figurować serwer IIS na komputerze wyposa-
żonym w system Windows XP SP2,

• o konfiguracji serwera IIS do obsługi stron

ASP.NET z uwierzytelnianiem SSL,

• artykuł ten należy traktować jako poradnik

dla programistów .NET, którzy chcą lokalnie
przetestować swoje witryny WWW wymaga-
jące użycia protokołu SSL. Dzięki temu moż-
na uniknąć wielu błędów, co zdecydowanie
podniesie bezpieczeństwo tworzonych pro-
jektów.

Co powinieneś wiedzieć

• ogólna znajomość systemu Windows XP,
• podstawowa znajomość platformy .NET,
• podstawowa znajomość zasad działania pro-

tokołów SSL, TLS i HTTPS.

background image

Konfiguracja serwera IIS dla ASP.NET z protokołem SSL

hakin9 Nr 10/2007

www.hakin9.org

63

Działamy tutaj w myśl zasady,

że w końcu komuś musimy zaufać.
Można na to spojrzeć również jako
na pewnego rodzaju protekcję. Po-
wiedzmy, że chcemy zdobyć nową
pracę. Musimy więc przekonać na-
szego przyszłego szefa, że moż-
na nam zaufać. Największe szan-
se mamy, jeżeli ktoś godny zaufa-
nia nas poleci. I tak mniej więcej
działa podpisywanie certyfikatów.
Współczesne przeglądarki interne-
towe potrafią rozpoznać firmę, któ-
ra podpisuje dany certyfikat. Jeże-
li certyfikat jest nieznanego pocho-
dzenia, wówczas przed wejściem
na taką stronę zostaniemy poin-
formowani o możliwości zaistnie-
nia zagrożenia. Spora część użyt-
kowników ignoruje tego typu infor-
macje. Co to za zagrożenie, skoro
cała transakcja jest szyfrowana?
To prawda, nikt jej nie podsłucha,
ale nie możemy mieć pewności,
co serwer zrobi z poufnymi danymi
po ich otrzymaniu. W końcu to je-
mu ufamy na zasadzie wszystko al-
bo nic. Dla modelu sieciowego OSI
protokół HTTPS działa w warstwie
aplikacji, natomiast protokół SSL
działa w warstwie transportowej.
Takie rozwiązanie wymusza istnie-
nie jednego certyfikatu dla każde-
go adresu IP. Warto również wspo-
mnieć, że protokół SSL zawdzię-
czamy firmie Netscape. Podsumo-
wując, SSL gwarantuje:

• identyfikację stron, czyli pew-

ność, że nikt się nie podszywa
pod klienta bądź serwer,

• szyfrowanie danych, co prak-

tycznie uniemożliwia podsłuch,

• integralność danych, co ozna-

cza pewność, że przesyłane da-
ne nie zostały po drodze pod-
mienione, np. poprzez atak typu
man-in-the-middle.

Trzy główne czynniki (nie licząc
tzw. czynnika ludzkiego) wpływa-
ją na bezpieczeństwo transakcji
HTTPS. Po pierwsze, jakość im-
plementacji obsługi tego typu po-
łączeń w przeglądarce interneto-
wej. Po drugie, konfiguracja serwe-
ra WWW i po trzecie, użyty algo-
rytm kryptograficzny.

Instalacja serwera IIS

Firma Microsoft udostępniła dar-
mową wersję środowiska programi-
stycznego umożliwiającego tworze-

nie projektów ASP.NET. Visual Web
Developer
, bo o nim mowa, posia-
da wbudowany serwer WWW, który
uruchamiany jest wyłącznie do ce-
lów testowych. Jest to szalenie wy-
godne rozwiązanie, ponieważ nie
musimy sami instalować i urucha-
miać serwera IIS w naszym syste-
mie. Jest on uruchamiany na czas
pracy środowiska, a następnie wy-
łączany.

Osobiście zachęcam do po-

brania pakietu Visual Web Deve-
loper
i sprawdzenia jego napraw-
dę sporych możliwości. Jeśli jed-
nak chcielibyśmy sprawdzić lo-
kalnie zachowanie witryny WWW
wraz z protokołem HTTPS, musi-
my sami zainstalować i skonfigu-
rować serwer IIS. Jak się za chwi-
lę okaże, nie jest to wcale trudne.
Wystarczy dodać nowy składnik
systemu Windows ze standardowej
funkcji Dodaj/Usuń składniki sys-
temu Windows. Uruchamiamy Pa-
nel sterowania
(np. przez okno Mój
komputer
) i otwieramy aplet Dodaj/
Usuń
programy. W jego oknie kli-
kamy przycisk Dodaj/Usuń składni-
ki systemu Windows. Sprawdzamy,
czy zaznaczona jest pozycja Inter-
netowe usługi informacyjne (IIS),
a w jej szczegółach, czy są za-
znaczone pozycje Common Files,
Przystawka internetowych usług
informacyjnych, Usługa SMTP i
Usługa World Wide Web. Jeżeli
nie, zaznaczamy je i klikamy Dalej.

Rysunek 1.

Aplikacja Zarządzanie komputerem z rozwiniętą listą usług

dostępnych w systemie Windows XP SP2

Rysunek 2.

Okno menedżera serwera IIS

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

64

Wówczas nastąpi instalacja zazna-
czonych składników. Po zakończe-
niu instalacji musimy jeszcze uru-
chomić odpowiednią usługę w sys-
temie Windows. Poprzez aplikację
Zarządzanie komputerem (Panel
sterowania / Narzędzia administra-
cyjne / Zarządzanie komputerem
)
wchodzimy w listę aktualnie do-
stępnych usług systemowych (le-
wa część okna, gałąź Usługi i apli-
kacje / Usługi
). W liście usług (Ry-
sunek 1) należy uruchomić: Admi-
nistrator programu IIS, Publikowa-
nie w sieci World Wide Web i ewen-
tualnie Simple Mail Transfer Proto-
col
(SMTP).

Uruchomienie usług IIS może

nie wystarczyć, aby serwer WWW
był w pełni aktywny. Musimy wyko-
nać jeszcze jeden drobny zabieg. W
oknie Narzędzia administracyjne kli-
kamy dwukrotnie ikonę Internetowe
usługi informacyjne (menedżer ten
dostępny jest także w drzewie okna
Zarządzanie komputerem). Urucho-
miona zostanie aplikacja systemo-
wa Internetowe usługi informacyjne
(Rysunek 2).

W jej oknie rozwijamy elemen-

ty dostępne w lokalnym kompute-
rze i zaznaczamy pozycję Domyśl-
na witryna sieci Web. Z menu kon-
tekstowego tej pozycji wybieramy
Uruchom lub klikamy trójkąt na pa-
sku narzędzi. W tej wersji serwera
IIS ograniczeniem jest możliwość
przechowywania tylko jednej stro-
ny WWW. Standardowo skonfigu-
rowany serwer IIS w katalogu C:
\Inetpub\wwwroot
powinien mieć
umieszczoną witrynę internetową.
Aby przetestować jego działanie,
umieszczamy tam plik Default.html,
w którym umieszczamy kod HTML
zaprezentowany na Listingu 1.

Myślę, że nie ma potrzeby tłu-

maczenia, co zostanie wyświetlo-
ne w oknie przeglądarki interneto-
wej podczas uruchomienia tego pli-
ku. My jednak dostęp do tej stro-
ny chcemy uzyskać z poziomu ser-
wera IIS. W tym celu uruchamiamy
przeglądarkę internetową i wpisuje-
my w niej adres http://localhost/ lub
http://127.0.0.1
. Powinniśmy zoba-
czyć utworzoną przed chwilą stro-
nę (Rysunek 3).

Rejestrowanie

ASP.NET 2.0 w IIS

Należy zwrócić uwagę, że jeże-
li IIS było zainstalowane lub rein-
stalowane po zainstalowaniu plat-
formy .NET, to konieczne jest zare-
jestrowanie usług ASP.NET w ser-
werze IIS. Zrobimy to na przykła-
dzie .NET w wersji 2.0. Pliki platfor-
my .NET umieszczone są w podka-
talogu Microsoft.NET\Framework\
katalogu systemowego Windows.
Znajdujemy tam katalog, który w
nazwie po v2.0 ma najwyższy nu-
mer. W moim przypadku będzie to
katalog Microsoft.NET\Framework\
v2.0.50727
. Jest tam program asp-
net_regiis.exe
służący do rejestro-
wania usługi ASP.NET dla serwe-
ra IIS.

Dla pewności uruchamiamy

program aspnet_regiis.exe z para-
metrem

–ua

, aby odinstalować inne

wersje platformy .NET, które mo-
gą być zarejestrowane w serwe-
rze IIS. Następnie uruchamiamy
program aspnet_regiis.exe z pa-
rametrem

–i

. Po chwili powinniśmy

uzyskać komunikat Finished instal-
ling ASP.NET (2.0.50727)
. Można

teraz przetestować, czy uda nam
się uruchomić prostą aplikację
ASP.NET. Powiedzmy, że mamy
już stworzoną witrynę ASP.NET
i chcielibyśmy ją móc uruchomić
za pomocą serwera IIS. Pierwszą
czynnością, jaką musimy wyko-
nać, jest uruchomienie menedże-
ra IIS (Rysunek 2). Zaznaczamy w
nim element Domyślna witryna sie-
ci Web
i wybieramy pozycję Nowy /
Katalog
wirtualny... z jej menu kon-
tekstowego (menu dostępnego po
skinięciu prawym klawiszem my-
szy). Uruchomiony zostanie Kre-
ator tworzenia katalogów wirtual-
nych
. Tworzymy w nim alias pod-
strony i klikamy przycisk Dalej.

Teraz korzystając z przycisku

Przeglądaj... wskazujemy katalog
projektu, który chcemy zarejestro-
wać w serwerze IIS. Ponownie kli-
kamy Dalej. Kolejna strona pozwa-
la na wybór uprawnień IIS wzglę-
dem tworzonego katalogu. W za-
leżności od typu naszego projektu
nadajemy odpowiednie prawa (od-
czyt
, uruchamianie skryptów, za-
pis
). Aby zakończyć pracę z kreato-
rem, klikamy jeszcze raz przycisk
Dalej, a następnie Zakończ. Jeżeli
alias został prawidłowo skonfiguro-
wany, to do gałęzi Domyślna witry-
na sieci Web
dodana zostanie no-
wa pozycja o tej samej nazwie, ja-
kiej użyliśmy przy tworzeniu aliasu.
Po uruchomieniu przeglądarki bę-
dziemy mogli wpisać adres witryny
korzystając z wirtualnego katalogu,
tj. http://localhost/nazwa_aliasu/.

Naszą witrynę WWW możemy

oczywiście po prostu skopiować
do katalogu C:\Inetpub\wwwroot.

W Sieci

http://www.iis.net/ – podstawowe źródło informacji na temat serwera IIS,
http://en.wikipedia.org/wiki/Transport_Layer_Security – artykuł opisujący zasadę

działania protokołów SSL i TLS,

http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-

4c73-b628-ade629c89499&displaylang=en – link do pobrania pakietu IIS 6.0 Re-
source Kit Tool
, w którego skład wchodzi program SelfSSL użyty w artykule do ge-
nerowania publicznego klucza dla serwera IIS,

http://msdn.microsoft.com/vstudio/express/downloads/ – miejsce, skąd można

pobrać środowisko programistyczne Visual Web Developer Express Edition, które
umożliwia tworzenie stron ASP.NET.

Listing 1.

Testowa strona HTML

<

HTML

>

<

HEAD

>

<

TITLE

>

Test serwera WWW

<

/TITLE

>

<

/HEAD

>

<

BODY

>

Test serwera WWW

<

/BODY

>

<

/HTML

>

background image

Konfiguracja serwera IIS dla ASP.NET z protokołem SSL

hakin9 Nr 10/2007

www.hakin9.org

65

Będzie wówczas dostępna bezpo-
średnio po wpisaniu adresu http:
//localhost/
. Jeśli coś nie działa, po-
zostaje wyświetlenie pliku iis6.log
w katalogu systemowym Windows,
który zawiera informacje o działa-
niu serwera IIS. Proste strony bę-
dą na pewno działały bez zarzu-
tu. Ze skomplikowanym serwisa-
mi, które jednocześnie korzystają z
kilku technologii, sprawa może być
nieco bardziej skomplikowana i wy-
magać może instalowania dodatko-
wych komponentów.

Instalacja

certyfikatu SSL

Przechodzimy teraz do skonfigu-
rowania serwera IIS w ten sposób,
aby obsługiwał połączenia HTTPS.
Dzięki wielu kreatorom obecnym
w systemie Windows oraz odpo-
wiedniemu oprogramowaniu, czyn-
ność ta będzie również niezwy-
kle prosta. Pierwszym krokiem bę-
dzie zainstalowanie programu Sel-
fSSL, który wchodzi w skład pakie-
tu IIS 6.0 Resource Kit Tool. Ge-
neruje on publiczny klucz dla ser-
wera IIS i automatycznie konfi-
guruje go do obsługi stron typu
https://. Plik ten znajduje się w za-
sobach http://www.microsoft.com/
downloads
, a pełny link do jego
pobrania jest dosyć nieciekawy:
h t t p : / / w w w . m i c r o s o f t . c o m /
downloads/details.aspx?FamilyID
=56fc92ee-a71a-4c73-b628-ade-
629c89499&displaylang=en
. Na-
zwa pliku to iis60rkt.exe. Po po-
braniu uruchamiamy go. Na ekra-
nie naszego komputera powinno
pojawić się okno instalatora pakie-

tu IIS 6.0 Resource Kit Tool. Jak
zwykle w przypadku instalatorów
w systemie Windows, klikamy przy-
cisk Next. Po drodze zgadzamy się
na warunki licencji (nie mamy in-
nego wyboru, jeżeli chcemy zain-
stalować ten pakiet). Ponieważ w
skład pakietu IIS 6.0 Resource Kit
Tool
wchodzi sporo programów na-
rzędziowych, a my chcemy jedynie

skonfigurować połączenie HTTPS,
to w oknie wyboru rodzaju instalacji
wybieramy opcję Custom. Umożli-
wia nam to samodzielny wybór ele-
mentów z pakietu.

Kolejnym krokiem jest wybra-

nie ścieżki dostępu, w której chce-
my zainstalować pakiet IIS 6.0 Re-
source Kit Tool
. Po wyborze miej-
sca instalacji wybieramy elementy,
które chcemy zainstalować. Ponie-
waż mamy zamiar uruchomić połą-
czenie HTTPS z protokołem SSL,
wybieramy jedynie program Sel-
fSSL 1.0 (Rysunek 4). Oczywiście
nic nie stoi na przeszkodzie, aby
zainstalować wszystkie programy
wchodzące w skład IIS 6.0 Reso-
urce Kit Tool
.

Przed właściwą instalacją wy-

świetlone zostanie jeszcze okno
potwierdzające wybrane przez
nas programy. Klikamy przycisk
Next i czekamy, aż instalator za-

Lista niektórych CA

VeriSign http://www.verisign.com/index2.html,
Thawte http://www.thawte.com/,
QualitySSL http://www.qualityssl.com/,
ComodoSSL http://www.instantssl.com/,
IpsCA http://certs.ipsca.com/,
RapidSSL http://www.rapidssl.com/index_ssl.htm,
Go Daddyhttps://www.godaddy.com/gdshop/ssl/ssl.asp?isc=sslsomt04,
CAcert http://www.cacert.org/,
Home.plhttp://home.pl/serwery/ssl,
Signet http://www.signet.pl/index.html.

Rysunek 3.

Najprostszy test serwera WWW

Rysunek 4.

Wybór składników pakietu IIS 6.0 Resource Kit Tool

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

66

kończy kopiować pliki. Tradycyj-
nie na końcu klikamy przycisk Fi-
nish
, który kończy instalację. W
ten sposób zainstalowaliśmy pro-
gram SelfSSL, generujący auto-
matycznie certyfikaty SSL i insta-
lujący je w serwerze IIS. Należy
mieć na uwadze fakt, że certyfi-
katy te nie są potwierdzane przez
żadną z wymienionych wcześniej
firm, więc przy uruchamianiu witry-
ny WWW przeglądarka interneto-
wa będzie wyświetlała odpowied-
nie ostrzeżenia.

Pozostało nam jeszcze wygene-

rowanie klucza publicznego dla ser-
wera IIS. Pakiet IIS 6.0 Resource
Kit Tool
w menu Start systemu Win-
dows w katalogu Programy/IIS Re-
sources/
umieszcza wszystkie swo-
je składowe (zależnie od typu insta-
lacji). Z menu Start wybieramy ka-
talog Programy/IIS Resources/Sel-
fSSL
i klikamy ikonę SelfSSL. Otwo-
rzy się widoczne na Rysunku 5 okno
komend.

W celu wygenerowania klucza

publicznego wydajemy komendę:

selfssl.exe /t

. Zostaniemy popro-

szeni o potwierdzenie instalacji cer-
tyfikatu SSL dla serwera IIS. Wpi-
sujemy z klawiatury y i przyciska-
my klawisz Enter. W ten sposób zo-
staje zainstalowany klucz publicz-
ny. Pozostałe opcje programu sel-
fssl.exe
to:

/T

– Opcja użyta przez nas do

automatycznego wygenerowa-
nia certyfikatu. Wybiera wszyst-
kie inne parametry jako domyśl-
ne,

/N

– Ustala nazwę certyfikatu.

Domyślnie jest to nazwa kompu-
tera,

/K

– Wielkość klucza SSL. Do-

myślnie wartość ta jest równa
1024,

/V

– Ilość dni, jakie wygenerowa-

ny certyfikat ma obowiązywać.
Domyślnie jest to 7 dni,

/S

– Numer identyfikacyjny wi-

tryny na serwerze IIS. Domyślna
wartość to 1. Tu zresztą nie ma-
my zbyt wielkiego wyboru, jeżeli
serwer IIS został skonfigurowa-
ny tak jak w opisie,

/P

– Numer portu dla połączenia

SSL. Standardowo jest to port
443,

/Q

– Nadpisywanie klucza bez

potwierdzenia,

Jedyne, co nam teraz pozostaje, to
sprawdzenie, czy całość działa. Za-
kładam, że mamy zdefiniowaną pro-
stą stronę ASP.NET 2.0 w serwerze
IIS i jest ona w jego katalogu www-
root
. Uruchamiamy przeglądar-
kę internetową i wpisujemy tym ra-
zem adres https://localhost. Ponie-
waż nasz certyfikat nie jest podpi-
sany przez żadną z organizacji CA,
powinniśmy zostać zapytani przez
przeglądarkę, czy akceptujemy cer-
tyfikat tej strony oraz poinformowani
o ewentualnych zagrożeniach. Jeśli
opisane kroki wykonaliśmy popraw-

nie, wówczas w przeglądarce inter-
netowej powinna się pojawić ikona
kłódki i informacja, że połączenie
jest szyfrowane.

Podsumowanie

Testowy serwer IIS wraz z obsłu-
gą połączeń HTTPS jest już skon-
figurowany. Dzięki niemu będziemy
mogli sprawdzać witryny ASP.NET
wymagające uwierzytelnienia SSL.
Ponieważ artykuł ten skierowany
jest do programistów, a jego zało-
żeniem było przedstawienie platfor-
my testowej dla witryn ASP.NET z
połączeniem HTTPS, to tak skonfi-
gurowanego serwera IIS nie nale-
ży udostępniać w Internecie – chy-
ba, że lubi się ryzyko. Udanych te-
stów! l

Rysunek 5.

Generowanie publicznego klucza dla serwera IIS

O autorach

Sławomir Orłowski – z wykształcenia fizyk. Obecnie jest doktorantem na Wydzia-
le Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Mikołaja Kopernika w
Toruniu. Zajmuje się symulacjami komputerowymi układów biologicznych (dyna-
mika molekularna) oraz bioinformatyką. Programowanie jest nieodzowną częścią
jego pracy naukowej i dydaktycznej. Ma doświadczenie w programowaniu w języ-
kach C, C++, Delphi, Fortran, Java i Tcl. Z językiem C# i platformą .NET pracuje
od 2002 roku. Strona domowa: http://www.fizyka.umk.pl/~bigman/.
Kontakt z autorem: bigman@fizyka.umk.pl
Jacek Matulewski – fizyk zajmujący się na co dzień optyką kwantową i układa-
mi nieuporządkowanymi na Wydziale Fizyki, Astronomii i Informatyki Stosowa-
nej Uniwersytetu Mikołaja Kopernika w Toruniu. Jego specjalnością są symula-
cje ewolucji układów kwantowych oddziałujących z silnym światłem lasera. Od
1998 roku interesuje się programowaniem dla systemu Windows, w szczególno-
ści w środowisku Borland C++Builder. Ostatnio zainteresowany platformą .NET i
językiem C#. Poza opublikowanymi u nas książkami dotyczącymi programowa-
nia przygotował również cykl artykułów dla czasopisma „PC World Komputer” (od
sierpnia 2005 roku). Wierny użytkownik kupionego w połowie lat osiemdziesiątych
komputera osobistego ZX Spectrum 48k.
Kontakt z autorem: jacek@fizyka.umk.pl


Wyszukiwarka

Podobne podstrony:
Konfiguracja serwera VPS dla TOR pod HiddenService
2007 10 01 Nowe obowiązki ewidencyjne dla kolejnych grup podatników
2007 10 Serwer kopii zapasowych [Administracja]
ASP NET dla kazdego aspndk
ASP NET dla kazdego aspndk
ASP NET Web Forms Kompletny przewodnik dla programistow interaktywnych aplikacji internetowych w Vis
ASP NET dla kazdego 2
ASP NET Web Forms Kompletny przewodnik dla programistow interaktywnych aplikacji internetowych w Vis
Rozwiązanie zadania z fizyki 10 11 Mroszczyk Salach dla szkół ponadgimnazjalnych cz2 ZamKor 2007
ASP NET Web Forms Kompletny przewodnik dla programistow interaktywnych aplikacji internetowych w Vis
ASP NET dla kazdego
ASP NET dla kazdego aspndk

więcej podobnych podstron