Exportera SSL-certifikat till annan server

Vi jobbar för tillfället med att lastbalancera två stycken Windows 2003 burkar som kör en lite större ehandel-lösning. Vi har konfigurerat servrarna i ett gemensamt kluster med hjälp av Network Load Balancing Manager.

Nu behövde vi även ha dubbla SSL-certifikat och dessa beställdes från GeoTrust för några veckor sen. Idag skulle jag exportera certifikatet till den extra servern och var lite orolig eftersom jag upplevde själva installeringen som rätt komplicerad.

Exporten visade sig relativt lätt, hittade en guide som heter "Manage SSL certificates with IIS6" och var till stor hjälp.

By Jesper Lind

Mer om det dåliga stödet för URL-omskrivning i Asp.Net

Jag älskar att utveckla i Asp.Net C# och kommer definitivt fortsätta att satsa på denna teknik. Men allt kan ju inte vara perfekt. Den största bristen i ramverket är enligt mig att det inte finns något inbyggt stöd för URL-omskrivning. Har skrivit lite om det tidigare.

Det är framför allt i IIS 6 som bristerna finns. I den nyare IIS 7 som kommer lanseras med Longhorn server kommer det finnas bättre möjligheter till att lägga in regler för URL-omskrivning. Det är ju dock en tag kvar tills det nya operativsystemet finns på marknaden så det hjälper oss inte just nu.

Det man kan göra i dagsläget är att använda ASAPI-filter men då förutsätts att du har en egen dedikerad server eller ligger på ett webbhotell som vill installera det åt dig. Jeff Atwood på Coding Horror skriver mer om de två vanligaste ASAPI-lösningarna för IIS.

En av de främsta kritikerna av situationen är nog Mike Schinkel. Detta är killen som ligger bakom initiativet wiki.welldesignedurls.org och den medföljande bloggen där man kan läsa mycket intressant på ämnet.

På sin personliga blogg sparar inte Mike på krutet. I en post nyligen med rubriken "IIS 7.0: Too Little, Too Late?" hoppar även en annan Mike (Program Manager för Microsoft’s IIS team) in i diskussionen och beklagar situationen.

Den första Mike fortätter i ett annat inlägg att lista upp alla alternativa server-tekniker och frågar sina läsare vilken han ska börja använda istället för Asp.Net. Han verkar ha tröttnat och det är lite tråkigt tycker jag.

Men bra att många uppmärksammar problemet. Microsoft har dock meddelat att IIS 7 kommer inte finnas tillgänglig för Windows 2003 och det är riktigt synd. De nya teknikerna är för djupt förankrade i Longhorns nya ramverk, menar man.

Men vem vet, efter alla böner från utvecklare kanske Microsoft kan avsätta lite resurser på det. Det skulle vara helt underbart. Mitt tips är att göra en lättare uppgradering till IIS 6 och försöka få till samma implementering av URL-omskrivning som i den kommande webbservern. Kalla den typ IIS 6.5.

By Jesper Lind

QuickSSL - överdrivet hög säkerhet men väl fungerande

Fick ett varningsmail från leverantören av SSL-certifikatet på en webbplats jag har hand om. Mailet sa att det bara är 7 dagar kvar och det kändes lite stressande. Utan certifikatet slutar den säkra kassan att fungera som är så viktigt för e-handelsidan. Eftersom den person på webbhotellet som har hand om det i vanliga fall är på lång semester så fick jag ta tag i förnyelsen själv.

Det hela visade sig vara en rätt omfattande process med cirka 13 steg eller så. I min inkorg finns nu 5 stycken mail med info om verifiering och bekräftelse. Ett något mer udda steg var när jag fick ange telefonnummer och blev uppringd av en automatisk telefon. Där fick jag mata in ytterligare en säkerhetskod och även lämna ett prov på min röst.

Hur som helst gick hela processen väldigt bra och jag fick hela tiden välskrivna instruktioner. Här finns t ex ett exempel på hur man installerar SSL på en IIS-server. Många av de var på svenska men saknade dock rätt tecken-kodning så man fick gissa sig fram på ÅÄÖ.

Jag kan varmt rekommendera GeoTrust om du behöver ett SSL-certifikat. Det fungerar väldigt bra, även om säkerhetstänket har gått lite över styr.

Recension från en annan som lämnar ungefär samma betyg går att läsa här.

By Jesper Lind

Vackra URL:er med ASP.NET (en bit kvar)

För ett tag sen skrev jag inlägget om hur man kan skriva om webbadresser med Asp.Net (eller snarare om alla de svårigheter som är involverade). Många utvecklare har tacklats med problemet och jag tänker inte gå något djupare på de tekniska detaljerna nu. Ska dock spara lite nya länkar här som jag hittat.

Först en artikel som inte har med just ASP.NET att göra men visar exempel på hur bra och beskrivande webbadresser bör se ut.

Sen en adress till en Wiki helt dedikerad åt välskrivna url:er, där man kan läsa "ASP.NET - Well Designed Urls Wiki", och innehåller många relaterade länkar.

Vad jag kommit fram till är att det nog är smartast att vänta tills IIS 7 finns att installera till Window 2003 (om detta någonsin blir möjligt, uppgradera till Longhorn Server blir nog det som gäller). IIS 7 kommer nämligen innefatta ett mycket bättre stöd för detta som man kan läsa på Scott Guthrie's blogg:

Several people have asked why the built-in URL Mapper in ASP.NET 2.0 doesn't support regular expressions. There were actually a few reasons for this -- one of the big ones being that just about the time we were about to consider adding it my team started also working on IIS7. We realized that a full-featured version would want/need to take advantage of some of the new features in IIS7 as well as the support all content types (in particular -- images and directories). So we postponed making it feature rich until a future version.

Själv är jag glad att jag inte har börjat försöka skriva om url:er på IIS 6 ännu, speciellt när man läser inlägg som "Making URL rewriting on IIS 7 work like IIS 6". Frågan är bara om man kan vänta, att ha snygga webbadresser känns ganska lockande, speciellt ur sökoptimerings-synpunkt. Men tänkt bara på att när IIS 7 släpps som riktig server-version så kan du tvingas att göra om det hela igen.

Om du vill ha några begynnande tankar från en som börjat testa url-omskrivning med IIS 7 på Vista, kan du läsa Dennis' blog.

By Jesper Lind

Bestämma hur sessioner ska lagras

Html är ett envägsprotokoll och kan inte hålla reda på från vilken webbläsaren ett anrop kommit från. När man programmerar dynamiska webbplatser är det ofta av stor vikt att man vet vilken användare som surfar på sidan vid ett visst tillfälle. För att hålla reda på dessa sessioner, som de kallas, finns det tre sätt att använda sig av i Asp.Net:
  • In Process (InProc)
  • State Server
  • SQL Server

In Process är det snabbaste och innebär att sessionerna lagras i arbetsprocessen "aspnet_wp.exe". Det har sina nackdelar eftersom alla sessioner försvinner om man startar om applikationen.

SQL Server är den säkraste metoden men kräver att man har en licens för SQL Server.

Vid State Server lagras sessionerna i en speciell process dedikerad till endast detta. Processen heter "aspnet_state.exe" och "aspnet_wp.exe" kommunicerar sedan med denna för att hämta och spara sessionsobjekten. Detta är en något långsammare metod än "In Process" men har sina fördelar i och med att applikationen kan startas om utan att man förlorar sessionosbjekten. Passar även bra vid webbfarmar där många servrar kan dela på samma lagringsplats för sessionerna.

För att ställa in en applikation för "State Server" anger man följande i web.config filen.

. . . mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false"
timeout="20" />

Ska flera servrar dela på samma State Server så måste man fylla i serveradressen istället för 127.0.0.1. Se även till att servicen "ASP.NET State Service" är igång på servern och inställd på automatisk uppstart.

By Jesper Lind

Stänga ner en applikation för underhåll

Ibland vill man stänga ner en hel hemsida medans man gör underhåll på den. Oftast vill man ju att det ska synas en sida med ett meddelande för besökare, som förklarar varför uppehållet sker.

En lätt lösning finns i Asp.net 2.0 där man kan ladda upp en fil som heter app_offline.htm direkt i rootmappen. Då går det inte längre att gå in på några andra sidor i applikationen. IIS-servern måste fortfarande vara igång.

By Jesper Lind

Problem med upptagna uppkopplingar

I fjärrinloggningen på server 2003 kan det ibland bli så att alla uppkopplingar är upptagna. Detta kan ske om man inte loggat ur sessionerna ordentligt och servern inte är inställd på att logga ut dem själv inom rimlig tid.

Här är ett bra tips för att få tillgång till en "extra" uppkoppling.

start/ kör / mstsc -v:0.0.0.0 /f -console (byt ut 0.0.0.0 till ip adressen på din server)

För att sedan släppa de gamla sessionerna går man in i Administrator Tools / Terminal Services Manager och välj "Log Off" på respektive remote session.

By Jesper Lind

Återställ Asp.Net skripten

Kopierar man aspnet_client mappen i en webbapplikation från en annan server så kan det bli problem med att grejer som validering och javascript slutar att fungera. Då kan det bli aktuellt att återskapa dessa. Öppna en CMD prompt och sök dig fram till denna mapp:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322

Denna kan variera mellan maskiner så se till att du hittar rätt. Använder du Asp.Net 2.0 så är den sista mappen på v2.0.50727 eller liknande.

Kör sen aspnet_regiis -c

By Jesper Lind