OpenVPN P12 Konvertierung

Um mit dem LFB Verbindung über FTP oder SSH aufnehmen zu können, benötige ich einen OpenVPN Tunnel. Mein Admin schickt mir hierzu regelmäßig eine P12 Datei (im Folgenden: domain-cert.p12) zu, die ich erst einmal zerlegen muss, damit mein Verbindungsskript reibungslos funktioniert. Da dies nur alle Monate passiert, vergesse ich in der Zwischenzeit leider immer wieder, wie ich vorgehen muss – deshalb mal für mich selbst als Gedächtnisstütze dieses Memo.

Es klappt mit den folgenden drei Schritten:

openssl pkcs12 -in domain-cert.p12 -out domain-ca.pem

openssl pkcs12 -in domain-cert.p12 -out domain-cert.pem -clcerts -nokeys

openssl pkcs12 -in domain-cert.p12 -out domain-key.pem -nocerts

Ohne Vergabe eines Passworts will die Konvertierung bei mir nicht funktionieren, was aber auch OK ist.

Ein Startskript auf dem Desktop

#!/bin/bash
cd /home/dirk/openvpn ; sudo openvpn domain.ovpn

lädt mir dann die OpenVPN Verbindung, die in der Datei domain.ovpn definiert ist:

client
proto udp
remote domain.topleveldomain
ns-cert-type server
dev tun
ca Interne-Domain-CA-cacert.pem
cert domain-cert.pem
key domain-key.pem

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Most clients don’t need to bind to
# a specific local port number.
nobind

# Try to preserve some state across restarts.
persist-key
persist-tun

# If a tls-auth key is used on the server
# then every client must also have the key.
tls-auth tls-auth-domain.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don’t enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20

Abgesehen von den hier genannten Skripten und Prozessen liegen im Ordner ~/openvpn noch die Interne-Domain-CA-cacert.pem und der tls-auth-domain.key zur Domain, die im Skript oben referenziert sind.