Zertifikate für iPhone mit IP Office erstellen

Vor einiger Zeit habe ich einen Beitrag veröffentlicht, der Euch die neuen Zertifikatsrichtlinien erklärt, die eingehalten werden müssen, damit ein Zertifikat von aktuellen Apple-Geräten(iPhone, iPad, MacOS PCs) akzeptiert werden. Zusätzlich zu Regeln über Schlüsselalgorithmen und -längen, die üblicherweise von allen Zertifizierungsstellen eingehalten werden, gibt es Anforderungen, die Ihr wahrscheinlich nicht auf dem ersten Blick sehen werdet. Ein Zertifikat, das nach ab dem 01. Juli 2019 erstellt wurde, darf eine maximale Gültigkeit von 825 Tagen haben und muss als erweiterte Schlüsselverwendung (EKU) den Wert “Server Authentifizierung” (OID 1.3.6.1.5.5.7.3.1) enthalten.

Die Herausforderung

In meinem letzten Beitrag, habe ich erwähnt, dass die Zertifizierungsstelle der IP Office in der Lage ist, Zertifikate zu erstellen, die von iPhones und anderen Apple-Geräten akzeptiert werden. Das war allerdings nur die halbe Wahrheit, weil erst IP Office Server (Server Edition oder Application Server) ab Release 11.0.4.1 gültige Zertifikate generieren.

Zusätzlich ist der Weg, eine Zertifizierungsstelle (CA) in einem Apple-Gerät als vertrauenswürdig zu etablieren, deutlich weniger intuitiv geworden als in der Vergangenheit.

Die Lösung

Bei der IPO CA bis zum Release 11.0.4.0 gibt es zwei Hauptprobleme:

  • Die vorgeschlagene Gültigkeit eines von der IPO generierten Zertifikats ist 2555 Tage (7 Jahre).
  • Der erforderliche EKU-Wert “Server Authentifizierung” fehlt.

Das Erste ist im Grunde nur eine Sache, die Ihr einfach wissen müsst, um die Gültigkeit im Webformular zur Erstellung des Zertifikats anzupassen. Dennoch wäre es angenehm, wenn dort ein passender Standardwert stünde.

Der Zweite Teil ist nicht so einfach zu lösen, da es kein Eingabefeld für den EKU-Wert gibt.

Ihr müsst wissen, dass das Webformular zur Zertifikatserstellung nicht mehr macht, als ein Skript mit den von Euch eingegebenen Werten als Parameter auszuführen. Dieses Skript sammelt die Werte, erstellt daraus eine temporäre OpenSSL Konfigurationsdatei und generiert das Zertifikat. Und das ist genau der Punkt, wo wir die nötigen Anpassungen vornehmen können.

Zertifikatswerte

Öffnet die Datei /opt/Avaya/scripts/gen_certs.sh mit nano:

nano /opt/Avaya/scripts/gen_certs.sh

Sucht dort nach dem ersten Auftreten von ‘DEFAULT_SERVER’, indem Ihr Strg+W drückt, den Suchbegriff eingebt und mit Enter bestätigt.

Ihr solltet die Folgende Zeile sehen, in der die Gültigkeitsdauer als sieben Jahre berechnet:

DEFAULT_SERVER_CERT_VALIDITY=$((365*7)) # 7 years

Passt diese Zeile an, um den Standardwert auf 820 Tage zu ändern:

DEFAULT_SERVER_CERT_VALIDITY=$((820)) # 820 days

Jetzt sucht Ihr nach dem Auftreten von ‘if $EXTENDED_CSR’ mit Strg+W. Hier sehr Ihr, wie die Konfiguration des Zertifikats erstellt wird. Unter der letzten ‘echo’-Zeile von

        echo "[ v3_req ]"                                     >> $EXT_FILE
        echo "basicConstraints = $CA"                         >> $EXT_FILE
        echo "keyUsage = $KEY_USAGE"                          >> $EXT_FILE
        echo "subjectAltName = $SUBJECT_ALT_NAME"             >> $EXT_FILE
        echo "subjectKeyIdentifier   = hash"                  >> $EXT_FILE
    else

fügt Ihr eine Neue Zeile hinzu, so dass der Abschnitt danach so aussieht:

        echo "[ v3_req ]"                                     >> $EXT_FILE
        echo "basicConstraints = $CA"                         >> $EXT_FILE
        echo "keyUsage = $KEY_USAGE"                          >> $EXT_FILE
        echo "subjectAltName = $SUBJECT_ALT_NAME"             >> $EXT_FILE
        echo "subjectKeyIdentifier   = hash"                  >> $EXT_FILE
        echo "extendedKeyUsage   = serverAuth,clientAuth"     >> $EXT_FILE
    else

Das war es schon. Speichert die Datei mit Strg+X gefolgt von Y, um das Überschreiben zu bestätigen.

Nun könnt Ihr die Einstellungen in der Weboberfläche öffnen und zum Formular zur Zertifikatserstellung scrollen. Ihr werdet feststellen, dass hier nun 820 Tage als Gültigkeitsdauer vorgeschlagen wird.

Ein neu generiertes Zertifikat hat ab sofort eine passende Gültigkeitsdauer und die EKU ist so konfiguriert, wie es Apple-Geräte erfordern.

Dem Ausstellerzertifikat mit dem iPhone vertrauen

Nun, da Ihr passende Zertifikate für die IP Office Dienste erstellen könnt, müsst Ihr sicherstellen, dass diesen auch von Eurem iPhone vertraut wird. Dazu müsst Ihr das Ausstellerzertifikat als vertrauensvoll etablieren.

Geht dazu erneut auf die Seite, auf der Ihr die Zertifikate generieren könnt und ladet das Root-Zeritifikat mit dem entsprechenden Butten herunter.

Root-Zertifikat herunterladen
Root-Zertifikat herunterladen

Nun könnt Ihr das Zertifiakt an das Telefon schicken und es öffnen. Ihr werdet eine Info bekommen, dass das Zertifikate geladen wurde und dass Ihr das “Profil” in den Einstellungen prüfen müsst. Sobald Ihr die Einstellungen öffnet, könnt Ihr auf “Profil geladen” gehen

iPhone: Einstellungen
iPhone: Einstellungen

und Ihr werdet sehen, dass das Zertifikat noch nicht überprüft ist und könnt auf “Installieren” tippen.

iPhone: Profile
iPhone: Profile

Nachdem die Installation abgeschlossen ist, wird Euch die neue Zertifizierungsstelle als installiertes Profil angezeigt. Während das bis iOS 12 noch ausreichend war, müsst Ihr nun noch einen weiteren Schritt erledigen.

Wechselt zurück in die “Einstellungen” App und tippt auf “Allgemein” und dann auf “Info”. Scrollt nach unten bis zum Ende des Menüs, wo Ihr den Punkte “Zertifikatsvertrauenseinstellungen” finden werdet. Hier könnt Ihr nun die neue Zertifizierungsstelle als vertrauenswürdig markieren.

iPhone: Zertifikatsvertrauenseinstellungen
iPhone: Zertifikatsvertrauenseinstellungen

Jetzt – und nicht früher – wird das iPhone der IP Office Zertifizierungsstelle und allen gültigen von dieser CA ausgestellten Zertifikaten vertrauen.

Zusammenfassung

Zertifikate werden mit OpenSSL erstellt, das alle nötigen Fähigkeiten mitbringt.

Das Zertifikat wird durch ein menschenlesbares Skript erstellt, das relativ einfach angepasst werden kann.

Die Anpassungen des Skripts ertüchtigt auch ältere Versionen der IPO Server, die erforderlichen Zertifikate zu generieren und Ihr solltet damit in der Lage sein, die iPhones Eurer Kunden mit der IP Offices zu verbinden.

Bitte behaltet im Hinterkopf, dass jedes Update, das nicht die Version 11.0.4.1 (oder später) als Ziel hat, das angepasste Skript wahrscheinlich ersetzen wird.

Falls Ihr weitere Unterstützung mit Zertifikaten benötigt, meldet Euch bei mir.

Falls Ihr weitere Hilfe mit einer IP Office benötigt, könnt Ihr mich gern über meine Webseite kontaktieren: https://www.fwilke.com

Wollt Ihr über neue Beiträge informiert werden? Dann registriert Euch doch zu meinem Newsletter

Schreibe einen Kommentar

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