pfSense: OpenVPN-Verbindungen scheitern an “Certificate does not have key usage extension”

Nach etwas längerer Zeit sollte wieder eine OpenVPN-S2S-Verbindung zwischen einer pfSense 2.6.0 (CE) und einer Securepoint UTM wiederhergestellt werden. Aus einem einfachen Reaktivieren wurde leider nichts.

Es hätte so einfach sein können: Auf beiden Seiten die entsprechenden Dienste wieder aktivieren, kurz warten, läuft. Leider Essig, dem war nicht so. Ein Blick ins OpenVPN-Log der pfSense zeigte dann relativ schnell den Grund hierfür:

Aug 3 12:15:42	openvpn	59104	SIGTERM[hard,init_instance] received, process exiting
Aug 3 12:14:29	openvpn	59104	SIGUSR1[soft,tls-error] received, process restarting
Aug 3 12:14:29	openvpn	59104	TLS Error: TLS handshake failed
Aug 3 12:14:29	openvpn	59104	TLS Error: TLS object -> incoming plaintext read error
Aug 3 12:14:29	openvpn	59104	TLS_ERROR: BIO read tls_read_plaintext error
Aug 3 12:14:29	openvpn	59104	OpenSSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Aug 3 12:14:29	openvpn	59104	Certificate does not have key usage extension

Der ausschlaggebende Punkt ist “Certificate does not have key usage extension”, allerdings war und ist auf der pfSense (die in diesem Fall als OpenVPN-Client läuft) genau dieser Punkt in der Konfiguration der VPN-Verbindung deaktiviert:

Ein De-/Aktivieren samt Neustart des Daemon oder der gesamten pfSense änderte nichts. Danach recherchiert findet sich dieser Thread:

Certificate does not have key usage extension

Hier liest man unter anderem:

My client certificates do not have serverAuth and clientAuth ExtendedKeyUSage ("EKU") attribytes.
In version 2.6 this check is mandatory

Kurzum: Fehlen die EKU-Attribute in den Zertifikaten, stößt man bei pfSense ab 2.6.0 auf ein Problem und das obwohl wie in diesem Fall die Nutzung in der Konfiguration explizit deaktiviert ist.

Das Ganze ist wohl mehr oder weniger ein Bug oder eine Unzulänglichkeit wie man in diesem Ticket nachlesen kann:

OpenVPN “remote_cert_tls“ option does not behave correctly when enabled and later disabled

Die Sache ist allerdings lösbar:

  • Unter “System – Package Manager – Available Packages” das System Patches-Paket installieren.
  • Anschließend zu “System – Patches” wechseln.
  • Bei “Custom System Patches” auf “+Add New Patch” klicken.
  • Bei “Description” eine Beschreibung eintragen und bei “URL/Commit ID” “48cf54f850c5bf4fe26a8e33deb449807e71c204” eintragen.
  • Auf “Save” klicken.
  • Nun bei dem gerade angelegten Patch auf “Fetch” und sobald verfügbar auf “Apply” klicken.
  • Die Schritte für “47f2f4060d9e5b71c5c69356b61191fd2931383c” wiederholen.

Am Ende sieht es dann so aus:

Sofern die VPN-Verbindung(en) immer noch nicht funktionieren, in den jeweiligen Server- oder Client-Konfiguration nochmals “Enforce key usage” überprüfen und ggf. nochmals De-/Aktivieren und evtl. den OpenVPN-Dienst oder die pfSense neu starten.

2 Kommentare

  1. joerich

    Vielen Dank! Es müsste mehr von Ihnen geben.

  2. Christian

    Ich habe die beiden Patches soweit hinterlegt
    Nach dem Fetch sind die URLs in den beiden Patches auch soweit hinterlegt.
    Allerdings taucht bei mir der Button Apply bei beiden Patches nicht auf.
    Irgendeine Idee woran das liegen kann ?

    Viele Grüße

    Christian

Schreibe einen Kommentar

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

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑