Test af mobile websites der kører SSL lokalt

Sikkerhed er en væsentlig faktor i al softwareudvikling og mobile websites er ingen undtagelse. Derfor bruger vi Secure Sockets Layer (SSL) til at beskytte forbindelsen mellem klienten og det mobile website. Herved krypteres kommunikationen så den ikke kan “aflyttes” af uvedkommende.

På en udviklers PC kan dette let sættes op, så udvikleren bruger SSL helt lokalt og derved løbende tester og debugger i lokal browser med SSL. Udvikleren kan fra de fleste browsere få et indtryk af, hvordan det mobile website opfører sig, da eksempelvis Google Chrome tilbyder at vise et website i skærmstørrelser, der modsvarer de gængse mobiltelefoner og IPads. Men dette er blot en simulering af en given smartphone.  Enhver, der har arbejdet med mobil udvikling, ved, at en simulering af en smartphone igennem eksempelvis Google Chrome, langt fra er nok, når vi taler om at teste. Derfor ville det jo være rart, hvis udvikleren blot kunne tilgå det lokale website på udviklermaskinen med en ”ægte” og ”fysisk” en af slagsen.  Men hvordan kan man gøre det – og hvilke udfordringer er der forbundet med det?

Udfordringen med SSL

Udfordringen ved at afvikle et website med SSL fra en udviklermaskine ligger i, at man ikke bare kan kalde websitet med en IP-adresse direkte. Desuden kræver det, at alle de andre sites på computeren er konfigureret, så de ikke kommer i konflikt med hinanden. Derudover vil det også kræve en del snilde på smartphonen, for at den kan kalde udvikler-computerens website og derved bruge udviklercomputeren som gateway.

Løsningen

Hvad er løsningen så? Brug NGROK, der nemt hjælpe med at skabe en forbindelse udefra internettet og ind på den pågældende udviklermaskines website. Også når den skal være krypteret med SSL. Du kan læse mere om NGROK og hente programmet her: https://ngrok.com/. Det er i skrivende stund gratis at bruge, så længe du ikke er bekymret eller irriteret over at bruge tilfældigt genererede URL’er.

Når du har sat dig ind i hvordan NGROK virker og har installeret det, så kan du på dette skærmbillede se, hvordan NGROK ser ud, når den afventer forespørgsler (bemærk information om eksterne og interne URL’er):

NGROK pending

Her ser du, hvordan den særlige eksterne URL bliver kaldt med SSL fra en smartphone:

Mobilt website med SSL

Og her ser du, hvordan NGROK reagerer, når der er kontakt til udviklermaskinens website (jeg har med vilje fjernet dele af URL’er for at beskytte den pågældende kunde):

NGROK der behandler forespørgsler med SSL

Da der er behov for nogle særlige parametre, så kan du kalde NGROK via Powershell med host header rewrite slået til og på en åben port 80 på IIS sitet på udviklermaskinen:

~\ngrok.exe http local_bid.arosit.dk:80 -host-header=rewrite

Lad dig ikke narre af dette. Du får en HTTPS forbindelse op i din mobile browser, selvom du tilgår sitet via port 80.

Kontakt os, hvis du vil vide mere

I Aros IT bruger vi NGROK aktivt i forbindelse med udvikling af mobile websites til vores kunder. Tag gerne kontakt til os, hvis du vil høre mere.

Om forfatteren:

Jørgen er certificeret Scrum Master og Scrum Product Owner. Han har arbejdet med IT-udvikling siden 1996 og har været selvstændig siden 2007. I 2011 indtrådte han som medejer af Aros IT.

Læg en kommentar