SSL op Windows Server 2003
1. Inleiding
2. IIS opzetten
3. Certification Server opzetten
4. Certificaat aanvragen
5. Certificaat behandelen
6. De boel forceren
7. Probleem?
8. IIS instellen
1. Inleiding
Secure Sockets Layer, kortweg SSL, is een techniek om een beveiligde verbinding te verkrijgen tussen de client en de server. Het verkeer dat tussen de client en de server wordt uitgewisseld is versleuteld. Door bij elke sessie een nieuwe sleutel aan te maken kunnen de gegevens gelezen worden.
Je herkent SSL op twee manieren:
- doordat er https in de header staat
- door een melding van jouw browser (opera heeft dit niet) dat er een certificaat binnenkomt
Zo'n certificaat kan je onder andere bekijken op de devzone van zend: devzone.zend.com.
Bij dit artikel ga ik gebruik maken van 2 Servers waarop windows Server 2003 is geïnstalleerd.
Één voor de SSL certificaten door te spelen, de hoofdserver (hier mag ook DNS en andere S2003 toepassingen op draaien) en één die dient als certification server (deze zal de certificaten uitdelen en doorsturen naar de eerste server). De eerste server noemen we vanaf nu Server A en de tweede Server B.
Ik ga er vanuit dat er dus tweemaal een juiste versie van Server 2003 is geïnstalleerd op de servers en dat deze allebei in hetzelfde netwerk liggen.
Zorg ervoor dat je bij alle wizards als er wordt gevraagd wat voor encryptie er gebruikt moet worden je gebruik maakt van Base64 in plaats van DER!
top
2. IIS opzetten
Deze actie wordt uitgevoerd op Server A.
Om gebruik te kunnen maken van SSL moet je eerst IIS opzetten. De reden is heel eenvoudig: SSL is alleen maar nuttig als er van buitenaf contact wordt gezocht met je server (via het Internet of via een Intranet). IIS als webserver biedt de mogelijhkeid hiertoe en moet dus geïnstalleerd worden.
Ga naar "Manage your server" en klik op "Add or remove a role" (rechtsboven).
Nu kom je bij een wizard, laat deze eerst alle mogelijkheden inladen en klik op next. Nu kom je bij een keuzelijst tussen alle mogelijkheden om te installeren. Kies hier de optie Application Server.
Bij het volgende menu is het aan te raden de 2 opties te selecteren (asp.net en frontpage extensies) omdat zonder dit de twee troeven zijn van websites maken op een S2003-server. Installeer vervolgens de Application server.
Ga nu naar je IIS manager (Administrative tools -> IIS) en voeg een nieuwe website toe. Ik heb hierbij voor poort 6969 gekozen. Maak een pagina aan om te testen en probeer vanaf een andere computer toegang te krijgen tot deze pagina (IP van Server:6969, bv. 12.2.2.3:6969). Als dit lukt dan is IIS goed geïnstalleerd.
Is dit niet gelukt dan gaan we dit probleem oplossen! Een mogelijk probleem (en waarschijnlijk hét probleem) is dat er een VPN-router is geïnstalleerd. VPN & IIS = problemen, dus daarom deïnstalleer de VPN-router.
Nu zou de website wel toegankelijk moeten zijn.
top
3. Certification Server opzetten
Ga nu naar Server B en open configuratiescherm.
Kies voor 'Add or Remove Programs' en dan 'Add or Remove Windows Components' (linker menu).
Installeer 'Certification Services'. De Certification Server is nu opgezet.
top
4. Certificaat aanvragen
Ga terug naar Server A en ga naar de IIS manager.
Kies nu properties en het tabblad Directory Security.
Kies hier voor 'Server Certificate'.
Nu kom je bij de IIS Certificate Wizard, geef hier een naam in (ik heb in mijn voorbeeld TEST IIS gekozen).
Kies ook een bit length (ik heb 1024 genomen).
Zorg ervoor dat 'Select cryptographic service provider (CSP) for the certificate' uit staat.
Na deze wizard krijg je normaal gezien een tekstbestandje. Sla dit op als certreq.txt (standaard naam) op een gedeelde map (zodat Server B hier toegang tot heeft).
top
5. Certificaat behandelen
Ga naar Server B en start een webbrowser naar keuze.
In deze browser ga je naar de volgende URL: 'http://localhost/CertServ'.
Kies voor 'Advanced Request - by using .txt file' en laad hier het certreq.txt bestand in.
Ga terug naar Server A en start ook hier een webbrowser naar keuze.
In deze browser ga je naar de volgende URL: 'http://IP_VAN_SERVER_B/CertServ' (bij mij was dit http://10.23.0.97/CertServ'.
Kies voor de volgende URL's (in deze volgorde): Request Certificate, Advanced Certificate Chain or CRL en als laatste de onderste link.
Nu kom je op een pagina met twee invoervakken. Open certreq.txt en kopiëer de inhoud hiervan in het eerste tekstvak. Laat het tweede tekstvak leeg en klik op 'Submit'.
Een probleem dat ik voorhad was dat mijn browser, wegens de extreme beveiligingsinstellingen van Server2003, geen scripting toeliet. Daarom heb ik de Security Settings van IE aangepast zodat dit wel mogelijk was.
Na nog een keer op Submit te klikken werkte alles.
Nu komt er de melding 'het certificaat is over twee dagen geldig'.
Nu kan je twee dingen doen:
- 2 dagen wachten
- de boel forceren
Bij stap 1 is er niet veel uitleg nodig. Stap 2 wordt in het volgende puntje uitgelegd.
top
6. De boel forceren
Ga naar Server B en klik op Administrative Tools -> Certification authority.
Links in het menu staat 'Pending Requests', klik hierop.
Klik met de rechtermuisknop op de te verwerken request en zet deze op 'Issue'.
De Request is nu verwerkt.
top
7. Probleem?
Als de certificaten niet werden ingevoerd dan is er blijkbaar iets fout gegaan.
Hoogstwaarschijnlijk heb je dan niet gedaan wat ik in stap 1 vermelde:
Zorg ervoor dat je bij alle wizards als er wordt gevraagd wat voor encryptie er gebruikt moet worden je gebruik maakt van Base64 in plaats van DER!
Oplossing: ALLE requests verwijderen, ook pending, issued en revoked.
Volledig opnieuw beginnen en ipv DER, Base64 encryptie gebruiken.
Op Server B 'View the Status Of Pending Requests' en dan de request aanvaarden.
top
8. IIS instellen
Als laatste moeten we nog het certificaat instellen.
Ga naar Server A en ga naar de IIS Manager. Kies voor Properties en het tabblad Directory Security.
Klik op Server Certificate en Certificaat instellen.
Zorg ervoor dat het ingesteld wordt op 'Require secured channel'.
Nu is IIS ingesteld voor het gebruik van de SSL.
Hoe testen?
Ga naar je website (die je op het begin hebt ingesteld) en zet er https voor. Normaal gezien krijg je nu, in IE en Firefox alleszins, een melding zoals je die ook bij devzone.zend.com kreeg.
top
|