OpenVPN und Zertifikate war noch nie ein Problem. Liegen die Zertifikate jedoch auf einem Yubikey, benötigt openVPN eine Schnittstelle um diese zu lesen. Dies ist openSC mit der opensc-pkcs11.dll.

Relevante Konfiguration aus openvpn-client-Konfiguration:

management 127.0.0.1 1201

management-hold

management-query-passwords

pkcs11-providers ‚c:\opensc-pkcs11.dll‘

pkcs11-id-management

Obige Konfiguration führt dazu, dass openVPN beim Starten einen Dialog liefert, wo ein Zertifikat ausgewählt werden kann. Yubikey muss natürlich gesteckt sein.

Nach PIN-Bestätigung verbindet sich OpenVPN. Wichtig ist, dass in der OpenVPN-Konfiguration gerade kein eingebettetes Zertifikat + Key existiert. Dies muss aus der Konfig raus und liegt ja auf dem Yubikey.

der <ca>-Block in der Konfig kann/muss bleiben. Dies ist ja jene Zertifizierungsstelle, die das OpenVPN-Server-Zertifikat auch ausgestellt hat und so dem client ermöglicht, den Server zu verifizieren.

opensc-pkcs11.dll gibt es im opensc-Paket. Es ist tatsächlich nur diese eine DLL nötig.

Categories: Blog