CardDAV/CalDAV und macOS Mojave

Viele haben das Problem, dass Sie seit macOS Sierra 10.12 keine Synchronisation mit ownCloud, Nextcloud oder Baikal durchführen können. Dahinter verbirgt sich der Service von http://sabre.io/.

In diversen Foren liest man, dass Apple seit Sierra 10.12 die Synchronisation nicht mehr unterstützen würde, das ist definitiv FALSCH! Appel unterstützt weiterhin CardDAV und CalDAV, nur nicht mehr über http (Port 80) sonder nur noch SSL verschlüsselt über https (Port 443) mit gültigem Zertifikat.

Lösung bei Problemen mit der Synchronisation von ownCloud, Nextcloud oder Baikal Adressbüchern und Kalender ist, dass man auf seinem Server ein Zertifikat einbinden muss und dieses auf seinem Apple-Gerät als vertrauenswürdig in den Schlüsselbund hinzufügen muss.

SSL Zertifikat erstellen

Entweder man nutzt den kostenlosen Service von Let’s Encrypt oder stellt sich ein eigens signiertes Zertifikat. Letzteres habe ich gemacht, da die Gültigkeit selbst festgelegt werden kann und ich mich selbst als „sicher“ einstufe.

Privater Schlüssel erzeugen:

openssl genrsa -out /etc/ssl/private/my-cert.key 4096

dieser liegt nun unter /etc/ssl/private/ und lautet my-cert.key.

Nun erstellen wir noch das dazugehörige Zertifikat:

openssl req -new -x509 -key /etc/ssl/private/my-cert.key -nodes -days 365 -sha256 -out /etc/ssl/certs/my-cert.crt
(alles in einer Zeile!)

das Zertifikat liegt nun in /etc/ssl/certs/ und lautet my-cert.crt.

Zertifikat einbinden:

Ich nutze Nginx, darum werde ich hier kurz erläutern, wie man das Zertifikat dort einbindet.

Hierzu bearbeiten wir die Konfigurationsdate: /etc/nginx/sites-available/default und fügen ändern diese von:

server {
    listen 80 default_server;    

    root /var/www;
    index index.php index.html index.htm;

    server_name "$hostname";

    location / {
            try_files $uri $uri/ =404;
    }

    location ~ \.php(?:$|/) {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_pass php;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
    include /etc/nginx/sites-dietpi/*.conf;
}

in:

server {
     listen 80 default_server;    
     listen 443 ssl;
     root /var/www;
     index index.php index.html index.htm;

     server_name "$hostname";
     ssl_certificate /etc/ssl/certs/my-cert.crt;
     ssl_certificate_key /etc/ssl/private/my-cert.key ;

     location / {
         try_files $uri $uri/ =404;
     }

     location ~ \.php(?:$|/) {
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_param PATH_INFO $fastcgi_path_info;
           fastcgi_pass php;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           include fastcgi_params;
     }
include /etc/nginx/sites-dietpi/*.conf;
}

Nun starten wir noch nginx neu mittels:

/etc/init.d/nginx restart

und wir können auf dem Mac / MacBook die Synchronisation mit CardDAV und CalDAV einrichten.

Zertifikat vom Server auf den Mac laden:

Am einfachsten geht dies per scp, dazu öffnen Sie das Terminal und geben nach dem folgenden Muster den Befehl: scp <Quelle> <Ziel> ein.

In meinem Fall wäre dies:

scp root@192.168.1.2:/etc/ssl/certs/my-cert.crt ~/Desktop/

und das Zertifikat wird auf den Desktop kopiert. Danach einfach einen Doppel-Klick auf das Zertifikat, damit sich der Schlüsselbund öffnet und diesen dann importiert. Ich lege das Zertifikat in den Schlüsselbunf System, damit es jedem anderen Benutzer auch zur verfügung gestellt wird ab.

Dann das Dropdown „Vertrauen“ ausklappen und unter dem Punkt „Bei Verwendung dieses Zertifikates:“ die Auswahl auf „Immer vertrauen“ setzen. Sichern und wir sind fertig.

Zum Test können Sie jetzt eine https Seite auf Ihrem Server aufrufen, diese müsste dann zwar mit einer Warnung aber angezeigt werden.

CardDAV und CalDAV Konto auf dem Mac einrichten:

Hierzu gehen wir in die Systemeinstellungen und wählen Internet-Accounts aus. Dort klicken wir auf den letzten Punkt der Liste, „Anderen Account hinzufügen …“

Und wählen dann den Accounttyp „Manuel“.
Hier geben wir den Benutzernamen oder die e-Mail-Adresse und das zugehörige Passwort ein, mit der sich der Benutzter bei der onwCloud, Nextcloud oder Baikal anmeldet.

Als Serveradresse muss natürlich entweder die DNS oder IP eingetragen werden, unter der der Service läuft. In meinem Fall läuft Baikal auf einem lokalen Server mit der IP: 192.168.1.2 und liegt dann unter /var/www/baikal/ lokal auf dem Server ab, woraus sich die URL http://192.168.1.2/baikal/ bzw. https://192.168.1.2/baikal/ ergibt.
(Dies variirt je nach eigener lokalen Einstellung am Server!)

Nun ist das Adressbuch eingerichtet und kann unter Kontakte gefunden werden.

Analog zum letzten Schritt funktionier das dann mit den Kalendern, hier wird dann halt der Punkt CalDav-Account ausgewählt und und die Adresse muss auf http://192.168.1.2/baikal/html/cal.php angepasst werden.

Über Raffael Haberland 11 Artikel
Informatikstudent an der Technischen Universität Darmstadt,

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*