Iphone IMAP über SSL und DYNDNS

heinzb

Neues Mitglied
Thread Starter
Mitglied seit
27.03.2006
Beiträge
24
Hallo,

ich versuche seit einiger Zeit mit meinem IPhone 3G von einem IMAP
Server, der über DynDNS erreichbar ist, Emails abzuholen.
Ohne SSL klappt das. Aber mit SSL funktioniert das nicht.
Ich habe irgendwie das Gefühl, dass es am Self Signed Cert liegt.
Hast das schon mal jemand hinbekommen ?
Bin für jeden Hinweis dankbar ;-)

Gruss Heinz
 

jvc

Mitglied
Mitglied seit
09.01.2008
Beiträge
319
ja, mache ich auch so. Klappt! Das eigene Zertifikat habe ich per Profil auf dem iphone installiert. Dann war Ruhe und es kommt nicht die Meldung, dass das Zertifikat ungültig ist.

Gruß jvc

PS: Habe eine CA erstellt und damit das Mail Server Zertifikat signiert
 
Zuletzt bearbeitet:

Elbow

Mitglied
Mitglied seit
26.03.2006
Beiträge
410
Entschuldige kannst du das evtl. nochmal genauer ausführen ? Ich hab bisher auch noch probleme mit dem Sync von Mail. was is eine CA , und ggfs. wie erstelle ich das ?
 

heinzb

Neues Mitglied
Thread Starter
Mitglied seit
27.03.2006
Beiträge
24
Hallo Elbow,

es geht nicht direkt um das Syncen von Mails, sondern darum die Mails auf einem IMAP Server (bei mir dovecot auf einem Linux) zentral zu halten.
Dadurch sind die Mails nur einmal vorhanden und es gibt nichts zu syncen ;)

Damit die Infos verschlüsselt über's Netz gehen, braucht man SSL.
Dazu muss man auf dem IPhone den public key installieren.

Das geht entweder in einem Mailanhang oder über ein Profile mit dem 'iPhone Configuration Web Utility'.

Allerdings funktioniert das bei mir nicht :confused:
Ich hoffe jvc (oder ein anderer Guru) kann da noch etwas Licht ins Dunkel
bringen.
 

jvc

Mitglied
Mitglied seit
09.01.2008
Beiträge
319
Hier mal eine kleine Anleitung, wie ich das gemacht habe mit den Zertifikaten.

Zunächst mal eine kleine Verzeichnisstruktur anlegen:

Code:
cd /root
mkdir meineCA
cd meineCA
mkdir certs newcerts crl private
touch index.txt
echo 01 > serial
Danach die openssl.cnf anpassen (nach eigenen Anforderungen);

Code:
vim /etc/ssl/openssl.cnf
Code:
…

[ CA_default ]

dir                             = [B][COLOR="Red"]/root/meineCA[/COLOR][/B]  # Where everything is kept

…

[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = [B][COLOR="red"]DE[/COLOR][/B]
countryName_min                 = 2
countryName_max                 = 2

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = [B][COLOR="red"]FRA[/COLOR][/B]

localityName                    = Locality Name (eg, city)
localityName_default            = [B][COLOR="red"]Frankfurt[/COLOR][/B]

0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = [B][COLOR="red"]guestLAMP Organisation[/COLOR][/B]

# we can do this but it is not needed normally :-)
#1.organizationName             = Second Organization Name (eg, company)
#1.organizationName_default     = World Wide Web Pty Ltd

organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = [B][COLOR="red"]Certificate Authority[/COLOR][/B]

commonName                      = Common Name (eg, YOUR name)
commonName_default              = [B][COLOR="red"]guestLAMP Organisation[/COLOR][/B]
commonName_max                  = 64

emailAddress                    = Email Address
emailAddress_default            = [B][COLOR="red"]ca@meinedomain.de[/COLOR][/B]
emailAddress_max                = 64

…
Die Email Adresse muss nicht mit dem DynDNS Namen übereinstimmen!

Nun wird das CA Zertifikat für 20 Jahr erzeugt:

Code:
openssl req -new -x509 -keyout private/meineCA_prv_key.pem -out meineCA_cert.pem -days 7300
Für die „pass phrase“ bitte ein sehr gutes und langes Text-Kennwort eingeben. Alle anderen Rückfragen vom Befehl openssl einfach mit der Taste ENTER bestätigen.

Danach wird das Zertifikat für z.B. den Email Server erstellt. Dies ist meist zwischen ein bis zwei Jahren gültig:

Code:
openssl req -new -keyout private/guestlamp_prv_key.pem -out certs/guestlamp_req.pem -days 365
Für die „pass phrase“ bitte ein einfaches Kennwort eingeben. Bei der Frage nach dem „Common Name“ bitte den DynDNS Namen des Servers eingeben (hier: „guestlamp.homeip.net“. Alle anderen Rückfragen vom Befehl openssl einfach mit der Taste ENTER bestätigen.

Code:
openssl rsa < private/guestlamp_prv_key.pem > private/guestlamp_prv_key-unverschluesselt.pem
Die “pass phrase” ist das vorher einfach gewählte Kennwort.

Code:
cp private/meineCA_prv_key.pem private/cakey.pem
cp meineCA_cert.pem cacert.pem
Nun muss das Zertifikat nur noch signiert werden:

Code:
openssl ca -policy policy_anything -notext -out certs/guestlamp_cert.pem -infiles certs/guestlamp_req.pem
Das Signieren natürlich bestätigen.

Nun müssen die Zertifikate noch installiert werden. Für Ubuntu z.B.:

Code:
mkdir /etc/ssl/ServerCert
cp meineCA_cert.pem /etc/ssl/certs/
cp certs/guestlamp_cert.pem /etc/ssl/ServerCert/
cp private/guestlamp_prv_key-unverschluesselt.pem /etc/ssl/private/
cp certs/guestlamp_cert.pem /etc/ssl/private/guestlamp_cert_and_prv_key-unverschluesselt.pem
cd /etc/ssl/private
cat guestlamp_prv_key-unverschluesselt.pem >> guestlamp_cert_and_prv_key-unverschluesselt.pem
cd
Das erzeugte Email Zertifikat muss dann nur noch dem Email Server bekannt gegeben werden.

In das iPhone Profil muss nur das meineCA_cert.pem eingefügt werden. Alle speziellen Zertifikate sind ja von der CA signiert worden.

Vielleicht hilft es...

jvc
 

heinzb

Neues Mitglied
Thread Starter
Mitglied seit
27.03.2006
Beiträge
24
Hallo jvc,

nach einer langen Nachtschicht hat's endlich geklappt :)

Es sieht so aus, als ob das Anlegen eines Accounts nur funktioniert,
wenn man die 'wellknown ports' (also 587(starttls) oder 25(smtp)
und 993(imap)) verwendet.
Und ... ganz wichtig ... das CA cert vorher per "iPhone Configuration Web Utility"
(da geht das *.pem Format) oder per vorhandenem Mail Account
(zb. googemail) als *.der File-Attachment auf dem IPhone installiert.

Nur dann (zumindest bei mir) klappt die Überprüfung der Einstellungen
und das IPhone macht alles richtig :D

Bei meinen ersten Tests habe ich immer am IPhone die Meldungen,
das etwas nicht funktioniert, weggeklickt und dann später die CA installiert,
bzw. die Ports/SSL Einstellungen nachträglich geändert...
das hat nicht funktioniert :(
Ich habe den Verdacht dass da noch irgendwo Bugs drin sind...

Ebenso ist es mir jetzt schon mehrfach passiert, dass bei manchen Mails
keinen Inhalt angezeigt wurde. Hier hat es geholfen die Mail in einen
anderen Ordner zu verschieben. Dabei stürzt die Mail App ab und
beim nächsten Start ist dann auch plötzlich der Inhalt wieder da :p

Gruss und nochmal vielen Dank für der Unterstützung
 
Oben