OpenVPN Connect auf iOS Geräten und der PolarSSL: error parsing ca certificate : X509 Fehler

Na wenn das nicht mal eine tolle Neuigkeit ist. Seit dem 18.1. gibt es einen offiziellen OpenVPN Client kostenlos für iOS Geräte. Man benötigt dazu ein iPhone ab dem 3GS oder ein beliebiges iPad, auf denen mindestens iOS 5.0 läuft.  Dann kann man seine .ovpn Profildateien importieren (entweder per iTunes auf das Gerät kopieren, per Browser herunterladen, oder via Mail auf das Gerät senden) und los gehts.

Zum testen habe ich meine gesammelten VPN Verbindungen (immerhin 20 Stück) mitsamt aller .cert und .key Dateien (Das ist wichtig) via iTunes auf das Gerät kopiert. Sofort erscheinen diese in einem Import-Menü und können ausgewählt werden. Leider wird es genau dann sehr unübersichtlich. Zwar werden die .ovpn Profile korrekt importiert, aber das entsprechende Zertifikat (.cert Datei) muss man aus einer Liste anschließend selbst auswählen. Dumm nur, dass man hier nicht den Dateiname aus einer Liste auswählen kann, sondern die Hex-SchlüsselIDs angezeigt bekommt. Das artet in Raten aus. Abschließend noch schnell Username und Passwort eingetragen, entschieden ob man diese speichern möchte oder nicht und mit einem Klick wird man mit dem neu angelegten VPN Profil verbunden – theoretisch.

PolarSSL: error parsing ca certificate : X509

Leider quittierte mir OpenVPN bisher jeden Verbindungsversuch mit einem Core Error:

PolarSSL: error parsing ca certificate : X509 - The certificate format is invalid, e.g. different type expected [ERR]

Wie sich herausstellte, möchte OpenVPN für iOS seine Zertifikate nur im .pem Format verdauen, ich legte sie ihm jedoch als pkcs#12 vor.

Zum Glück kann man die Formate mittels OpenSSL umwandeln. Dazu verwendet man die beiden Kommandos

um je einmal das Zertifikat und einmal den Key zu extrahieren. Voraussetzung ist natürlich, dass man das nötige Passwort kennt. Hier scheiterte es leider bei mir, da ich natürlich nicht über die Passwörter von Perfect-Privacy verfüge 😉

Generell freue ich mich also, dass es nun endlich einen offiziellen OpenVPN Client gibt, bin jedoch gleichzeitig enttäuscht, dass dieser wieder Otto-Normal-User vor unlösbare Probleme stellen wird.

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Das könnte Dich auch interessieren...

5 Antworten

  1. Larsen sagt:

    Man kann das extrahierte CA-Zertifikat dann auch ans Ende der .ovpn-Datei packen, indem man den Inhalt von ca.crt mit und umgibt:

    openssl pkcs12 -in .p12 -cacerts -nokeys -out ca.crt

    [Inhalt von ca.crt]

    • Larsen sagt:

      Schön, dass das Blog spitze Klammern kommentarlos entfernt, statt diese zu escapen…

      Der Inhalt des Zertifikats muss also zwischen „ca“ und „/ca“ (statt der Anführungszeichen öffnende und schliessende spitze Klammern verwenden).

  2. Marcel sagt:

    Hi Kolja,

    ich bin dank Google auf deinen Blog-Eintrag gestoßen. Ich hatte mich so gefreut, dass iOS nun endlich einen OpenVPN Client hat. Denn mein VServer von HostEurope, der mittels Plesk verwaltet wird, unterstützt lediglich OpenVPN.

    Also habe ich OpenVPN serverseitig über Plesk konfiguriert, die Settings und den Key aufs iOS-Endgerät gepackt und dachte – analog zu dir – ui das ist ja einfach.

    Von wegen: Beim gleichen Problem wie du komme ich nun nicht mehr weiter. Plesk generiert mir eine Vpn.conf Datei (entspricht .ovpn) und den vpn-key als Datei.

    Was muss ich nun mit diesen machen, damit der iOS Client eine Verbindung aufbauen kann?

    Danke und viele Grüße
    Marcel

    • Hm, ich habe mit Plesk noch nie einen OpenVPN Server generieren lassen, daher weiß ich nicht in was für einem Format dein Key vorliegt. Mal angenommen es wäre so wie bei mir ein PKCS#12-Format, dann müsstest du dich nur via SSH auf dem Server einloggen (oder irgendeinen Rechner auf dem OpenSSL eingerichtet ist) und die folgenden Kommandos für deine Key-Datei ausführen, um sie in ein für iOS-OpenVPN verständliches Format umzuwandeln:
      openssl pkcs12 -in .p12 -out output-key.pem -nocerts
      openssl pkcs12 -in
      .p12 -out output-cert.pem -nokeys
      Dabei wird dann dein Passwort abgefragt, dass du bei der Erstellung des Keys angegeben hast und eiiiigentlich sollte es dann klappen. Ich würde es ja gern selber mal ausprobieren, da die Idee mit dem OpenVPN via Plesk ganz reizvoll ist, ich bin aber grad so mit einem Bein im Urlaub 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.