Das iPhone, IMAP und ein selbst signiertes SSL-Zertifikat

Diese Kombination, liebe Freunde der sicheren Komunikation to go, kann unter Umständen die Wände hoch treiben.

Wenn man nämlich auf dem iPhone einen IMAP-Account einrichtet dessen sichere Kommunikation auf einem selbst signierten Zertifikat beruht passiert folgendes:

Das iPhone öffnet eine sichere Verbindung1 zu dem IMAP-Server auf Port 9932. Dann stellt es fest, dass das Zertifikat nicht bekannt ist und fragt nach, ob man wirklich mit diesem Server reden will.

Das will man natürlich und das iPhone will wieder über eine sichere Verbindung mit dem IMAP-Server reden. Aber dieses mal auf Port 143…

Das, werte verbliebene Leserschaft die immer noch diese exotischen Begriffe in sich aufsaugt, ist ein recht großes und schwer zu erkennendes Problem wenn man nur Port 993 auf dem IMAP-Server geöffnet hat.

Nach der Entdeckung des Problems ist die Lösung dann sehr einfach:

Für die Ersteinrichtung öffnet man den Port 1433 einfach und im Anschluss daran kann man auch, oh Wunder, in den erweiterten Einstellungen auf dem iPhone den Port 993 als zu verwendenden IMAP-Port konfigurieren.

IMAP Port 993

Warum es diese Funktionalität nicht auch schon bei der Ersteinrichtung über einen “Erweitert”-Button gibt ist mir utterly unexplainable, aber jetzt läufts halt.

(Lösung via: Wireshark und Artur Hefczyc)

  1. sehr gut []
  2. nicht so gut wie wir später sehen werden []
  3. natürlich mit aktiviertem TLS []
  • DB

    Hast du denn das selbstsignierte Zertifikat im Zertifikatsspeiche des iPhones installiert?

  • http://instant-thinking.de der Dennis

    Ähm, es scheint mir so. Zumindest musste ich die Frage nach dem Fortfahren nur bei der Einrichtung beantworten. Auch nach einem Reboot wurde sie nicht erneut gestellt.

    Wie dieser Zertifikatsspeicher aber funktioniert und ob man ihn weiter beeinflussen kann weiss ich nicht.

    Hinweise? Dokumentation? Links?

  • http://instant-thinking.de der Dennis

    Ok, ich habs. Schau mal in den Enterprise Deployment Guide – Seiten 9, 23, 36.

    Ausprobiert habe ich es so aber noch nicht…

  • DB

    Das installiert sich nicht von selbst.

    Dann musst du via iPhone Configuration Utility installieren :) Genau das meinte ich.

    Ist eigentlich bei jedem Smartphone so, auch bei Windows Mobile. Selbstsignierte Zertifikate müssen zuvor installiert werden.

  • http://instant-thinking.de der Dennis

    Mhm.

    Aber es muss ja drin sein da die Nachfrage nicht mehr kommt. Ist es vielleicht möglich, dass es durch die ursprüngliche Nachfrage installiert wurde?

    IMHO is es entweder das, oder das iPhone hat das Vertrauen in das Zertifikat vom MacBook durch den Sync des MailAccounts übernommen. Denn auf dem MacBook ist der IMAP-Account auch eingerichtet und da habe ich das Zertifikat installiert…

  • http://instant-thinking.de der Dennis

    Wie man so liest, kann man das Zertifikat auch einfach per mobilem Safari installieren…

  • JLU

    Ich konnte die Einstellungen auch ohne initiales Öffnen des Portes ändern. Dazu tapt man bei ersteinrichtung, wenn das Zertifikat nicht akzeptiert wird. Eine ähnliche Fehlermeldung erscheint nach einer ganzen Weile erneut. Hier sichert man dann im Anschluß den neuen Account gegen die Empfehlung des iPhones. DANN kan man obige Einstellungen treffen und es funktioniert!

  • http://www.tu-clausthal.de Jan Braun

    Guten Tag.

    Ich habe das gleiche Problem mit iPod und iPhone, an unseren Uni-LDAP-Server zu gelangen. Der Server läuft auf einer BSD-Kiste mit OpenLDAP, ist natürlich ordentlich zertifiziert, die Kette geht über die TU-CA, die DFN-CA und letztlich die Telekom-CA als selbst signiertes Root-Zertifikat.

    Per ssldump konnten wir herausfinden, dass das Root-Zertifikat als selbst-signiertes Zertifikat nicht akzeptiert wird.

    Auf den Geräten ist mittlerweile OS-3.1 installiert, und da sehen die Konfigurations-Einstellungen ganz anders aus, als auf dem Screenshot von Dir.

    Ein Telefonat mit dem Apple-Support in Europa brachte auch nichts neues. Sie bestätigten meinen Hinweis, dass es beim MacOS-X 10.3 und 10.4 noch eine Checkbox “Akzeptiere selbst-signierte Zertifikate”. Wenn man die eingeschaltet hat, dann klappte der Verbindungsaufbau. Unter 10.5 und fortfolgende gibt es diesen Schalter nicht mehr. Also muss es in 10.5 eine Änderung am MacOS-X gegeben haben, die man beim iPhone-OS nicht mit übernommen hat, was die Techniker in Europa nicht verstehen.

    Falls Du noch einen Hinweis hast … ich wäre sehr dankbar.

    Liebe Grüße

    Jan

  • http://instant-thinking.de der Dennis

    @Jan:

    Interessante Frage, ich hoffe ich verstehe dich richtig:

    Du bist da an dieser Uni und da steht dieser LDAP-Server. Dieser verfügt über ein Zertifikat, welches in letzter Instanz von der Telekom-CA unterzeichnet wurde. IMHO dürftest du dann gar kein Problem mit der Akzeptanz des Zertifikates haben.

    Ausserdem weiss ich nicht, wie du auf den LDAP-Server zugreifst und was der dann macht. Ist der für ein Adressbuch gedacht? Willst du, dass iPhone-Adressbücher auf euren LDAP zugreifen?

    Dann könntest du diese Probleme haben. Vielleicht will deine Uni 2,99 € investieren und das aktuelle Setup mit LDAPeople testen. Das scheint LDAPS korrekt zu implementieren und bei erfolgreichem Ausgang des Tests, wüsstet ihr zumindest dass es nicht an euch liegt.

    Ansonsten habe ich da leider auch keine tolle neue Idee (ausser auf einen Fix des iPhone OS zu warten), wäre aber sehr an deinen weiteren Erfahrungen interessiert.

  • http://www.tu-clausthal.de Jan Braun

    Hallo Dennis,

    danke für die Antwort. Du hast das Problem exakt erkannt. Wir haben alle Benutzer (sofern möglich) mit Telefon, Mail-Adresse und manchmal auch einem kleinen Foto in unserem LDAP gespeichert.

    Diesen Server kann man mit dem Adressbuch von Apple abfragen und bekommt dann alle zutreffenden Einträge auf eine Suchanfrage.

    Wie in Deinem Link zu dieser Seite ( http://blogs.sun.com/chienr/entry/configuring_ldap_on_iphone_3 ) angegeben, gibt es das Problem unter iPhone-3.x und davor auch schon unter 2.x.

    In dem Link wird auch beschrieben, dass es unter MacOS-X eine Checkbox gab “Accept self-signed certificates”. Das hat damals unter 10.3 und 10.4 geholfen. Anders als dort beschrieben ist diese Checkbox unter 10.5 verschwunden und seitdem klappt es auch ohne diese Checkbox.

    Ich nehme an, dass es sich beim iPhone um das gleiche Problem handelt, wie damals beim MacOS-X.

    Vielen Dank für den Hinweis auf LDAPeople. Ich werde es gerne ausprobieren.

    Da unser LDAP zentraler Server für soviele Dienste ist (WLAN-Access, Druck-Accounting, Telefonbuch der TK-Anlage, usw.) gehe ich mal davon aus, dass es nicht vollkommen unser Fehler ist. Leider wollen die Systemer nicht auf eine SSL-Verschlüsselung verzichten.

    Und einen Test habe ich noch gemacht. Das Root-Zertifikat der Telekom wird ja von Haus aus im iPhone mitgeliefert. Es reicht also auch aus, wenn man nur die nachfolgenden Zertifikate wie DFN und TU Clausthal mitsenden. Die Kette wird dann mit dem integrierten Telekom-Zertifikat vervollständigt und im Fall von Mail über IMAP und Kalender über CalDAV klappt dann auch die sichere Verbindung, die uns über LDAP versagt bleibt.

    Strange.

    Oh revoire

  • Pingback: 3gs und Exchange Zertifikat - iPhone 3GS Forum

  • Aeonnews

    1000 Dank für den Tip! Ich bin schon fast verzweifelt. Seit der Portänderung kann ich endlich meine Mails empfangen.