2009-10-08
Guide

Snow Leopard Server – så får du push att fungera mot iPhone

Obs: Efter att denna artikel postades har jag fått ytterligare information och frågor. Läs mer här. / After posting this article I have recieved questions and comments about this article. Please read this article for more information.

Efter att jag gick ganska skoningslöst fram mot Snow Leopard Server i mitt första test så fick jag en del extra kunskap av Apple på deras pressträff i London för ett par veckor sedan.

Nu har jag fått lite tid över för att sätta upp Snow Leopard Server (SLS) igen och med den (bitvis av Apple odokumenterade) kunskap jag fick i London bestämde jag mig för att gräva vidare i mysteriet pushfunktionen för kalender och e-post till iPhone.

Mysteriet med den försvunna push-funktionen

Snow Leopard Server ska ju innehålla pushfunktionalitet till både Mac OS X-klienter samt iPhones. På OS X-klienterna begränsar sig push-funktionaliteten till iCalservern medan den på iPhone även ska omfatta Mailservern. Så långt är nog alla överrens.

Men som mitt första test visade så fungerade inte pushfunktionaliteten för mail mot iPhone över huvudtaget, och på OS X-klienten är ju pushfunktionalitet av mail ganska meningslöst eftersom man uppdaterar sin brevlåda med stor regelbundenhet som det är, och eftersom Mail-klienten sedan version 3 stödjer IMAP IDLE-funktionen så blir det en sorts push ändå.

Samma funktionalitet gäller push på iPhone, med den skillnaden att Apple av någon outgrundlig anledning valt att inte aktivera IMAP IDLE på iPhone som standard, men det finns där. Man aktiverar nämligen funktionen genom att använda iPhone Configuration Utility, ett program som Apple släppts för både Mac OS X och Windows. I programmet kan man hålla reda alla iPhones i ett företag, distribuera ut egenskrivna applikationer till telefonerna (om man inte vill använda App Store) och skapa konfigurationsprofiler. Och det är här, mina vänner, som det magiska sker i din iPhone: IMAP IDLE aktiveras. Apples vana trogen säger de inte ett smack om detta i någon dokumentation eller i någon meny i varesig iPhone Configuration Utility, eller i iPhonen själv.

Fällor och problem

Nu kan man ju tro att det bara är att skapa en konfigurationsprofil för din iPhone och sedan ladda in den i telefonen, men riktigt så enkelt är det inte.

Problemet heter SSL-certifikat. iPhone-användare med gott minne minns att iPhonen i alla tider haft ganska stora problem med att hantera osignerade SSL-certifikat. När stödet för Exchange Server lanserades i iPhoneOS 2.0 så hade man som Exchange-administratör två val: antingen slog man av SSL-certifikat, eller så köpte man signerade dito, annars vägrade iPhonen att prata mot servern. Nu är vi uppe i version 3.1 av iPhoneOS och det har inte blivit så överdrivet mycket bättre. Mer om det senare i artikeln.

Push av kalendrar till iPhone

När man skapar en konfigurationsprofil i iPhone Configuration Utility så får man där specifiera alla inställningar som ska finnas i en iPhone. Tanken med detta är att göra det enkelt att rulla ut stora mängder telefoner på ett företag utan att behöva sitta och konfigurera varenda telefon manuellt. När det gäller inställningarna för iCal och Mail så kan man specifiera en rad olika inställningar och det här är det börjar bli knepigt.

Först ut tittar vi närmare på hur vi får push av kalenderdata att fungera till iPhone från Snow Leopard Server. Vyn för detta ser ut så här i iPhone Configuration Utility:

Här finns gott om saker som kan gå fel. Först och främst kan vi ta rutan märkt Principal URL. Man kan ju nämligen tro att det här ska stå exempelvis följande:

http://joacim.melin.org/ical/

Exemplet ovan är ju där mina kalendrar visas när jag surfar in på serverns webbgränssnitt för iCal. Men som skärmbilden ovan visar så är URL:en aningen längre och dessutom inte helt lätt att få fram. Jag fann att det enklaste sättet var att först lägga till alla kalendrar på servern i iCal på OS X-klienten och sedan högerklicka på varje kalender och kopiera URL:en:

Därefter är det dags att lägga till alla kalendrar som ska ligga på iPhonen. Notera att detta alltså måste göras med iPhone Configuration Utility för att Push-funktionen ska fungera till iPhone:

För att få fram namn och URL på kalendern, ta fram info på denna genom iCal:

Noterade du att SSL-certifikatrutan inte är ikryssad? Jag återkommer till det.

Konfigurering av Mail till iPhone

Metoden för att konfigurera Mail-funktionen till iPhone är ungefär den samma. Fyll i alla uppgifter:

Ska man skicka ut en konfiguration till många telefoner kan man utelämna uppgifterna i namn och lösenordsfältet men fylla i resten. Notera åter igen att för att push-mail till iPhone ska fungera måste man alltså skapa kontot på detta sättet.

Sedan är det dags att få över konfigurationsfilen till telefonen. Om du tycker att konfigurationen varit en anig hårig så här långt så är det ingenting med vad som komma skall.

Exportera konfigurationsfilen från iPhone Configuration Utility och spara ner den på din dator. Därefter lägger du upp den på lämplig webbplats. I mitt exempel nedan har jag skapat en Wiki som bara jag kommer åt med min personliga konfiguration och sedan laddat upp filen dit. Till höger ser du hur detta ser ut i min iPhone 3GS.

iPhonens reaktion på när man vill ladda ner filen som ligger i Wikin är minst sagt intressant. Först när man klickar på den får man ett felmeddelande som meddelar att det inte är så värst lämpligt att öppna filen med en iPhone utan det föreslås att man istället öppnar den med en dator. Klickar man på den igen så klagar iPhone igen men efter det så laddas filen ner och laddas in i telefonen. Att Apple inte gjort det här snyggare är för mig helt obegripligt. Varför inte skicka filen via iTunes? Eller via SMS?

Profilhanteringen känns halvfärdig och inte särskilt Enterprise som Apple gärna vill att vi ska tycka. Men sak samma, det fungerar, men ska du ägna dig åt att använda denna metod så krävs det nog lite gullande med användarna först så de köper konceptet för hela tanken är ju att de är de själva som ska kunna ladda ner konfigurationsfilen och på så sätt avlasta IT-avdelningen.

Se bilden här till höger för exempel på hur iPhone reagerar när man öppnar konfigurationsfilen.

Vad är problemet med SSL då?

Secure Sockets Layer, SSL, eller TLS som det numera kallas (och som det även kallas i bland annat Exchange Server 2003 eller senare) som konstruktion är en bra idé. Ett certifikat utfärdat av en tredje part som därmed står för garant för att anslutningen är säker. Men problemet är att SSL-certifikat är en mångmiljonindustri, och SSL-certifikat kostar stora pengar. En inte helt ovanlig prisnivå är över 1400 kronor för ett certifikat som gäller ett år och många väljer därför att hoppa över att köpa ett certifikat. Inte minst därför att det ju går nästan lika bra med ett egengenererat, osignerat, certifikat. Notera ordet nästan, för problemet är som ni alla vet att när man öppnar ett osignerat certifikat är att man får ett felmeddelande. Det är också här iPhone har haft problem, hur det hanterar osignerade certifikat. iPhoneOS 3.1 har blivit bättre på detta och numera är det sällan det fungerar dåligt.

Däremot blir det problem när man med konfigurationsfilen från iPhone Configuration Utility ska konfigurera tjänster som har SSL påslaget.

För att vara säker på att det inte är min brandvägg eller min server som är problemet har jag först satt upp respektive tjänst manuellt på min iPhone med SSL påslaget. Mycket riktigt har telefonen beklagat sig över att certifikaten är osignerade men godkänner man dem så fungerar samtliga tjänster bra, förutom att Push-funktionen inte är aktiv.

Konfigurerar man däremot tjänsterna med iPhone Configuration Utility får man felmeddelandet du ser till höger här i artikeln. Vad är då problemet? Det är så vitt jag förstått det ganska enkelt: installationen av konfigurationsprofilen utgår ifrån att man har köpt ett certifikat och därmed kan den inte hantera osignerade certifikat.

Summering

Ska man summera detta så är det alltså ganska enkelt: vill du ha pushfunktionalitet från Snow Leopard Server till iPhone så måste du köpa ett SSL-certifikat. Det kostar som mest cirka 1400 kronor per år och för egen del har jag för avsikt att anlita QualitySSL, ett danskt företag som har grymt bra stöd för Mac OS X Server och dessutom bra supportpersonal som inte tvekar att tjatta med dig via iChat om så behövs.

MacDaddy är ett exempel på konsultföretag som också kan hjälpa dig sätta upp och host:a din server om du inte vill göra det själv.

Macdaddy sponsrar också Macpro med serverplats.


Macpro är annonsfri för att göra din läsupplevelse bättre.
Läs mer här

© 2004 - 2017 Joacim Melin