VPN-Server auf Synology mit User-Cert und TLS

Veröffentlicht von Ulf Joksch am 12.04.2021

Einrichten eines VPN-Servers auf einem Synology-NAS mit TLS und User-Cert

Zertifikate und Schlüssel

Für den VPN Server benötigen wir eine CA-Zertifikat, ein Server-Zertifikat mit Schlüssel und die Benutzerzertifikate mit Schlüssel.

Weiterhin benötigen wir eine Date mit den Diffie-Hellman-Parametern und einen TLS-Authentifizierungsschlüssel

CA-Zertifikat ca.crt
Server-Zertifikat server.crt
Server-Zertifikatsschlüssel server.key
Benutzer-Zertifikat username.crt
Benutzer-Zertifikatsschlüssel username.key
Diffie-Hellman-Parameter df2048.pem
TLS-Authentifiezierungs-Schlüssel ta.key

Die Zertifikate und ihre zugehörigen Schlüssel, sowie die Diffie-Hellman-Parameter lassen sich recht bequem mit dem Programm XCA (https://hohnstaedt.de/xca/) generieren und verwalten.

Dazu starten wir das Programm XCA und legen eine Datenbank für unser Projekt an:

Anlegen einer neuen Datenbank:

Nach den Angeben zum Dateinamen und Speicherort muss ein Passwort für die Datenbank eingegeben, werden, da die Informationen verschlüsselt gespeichert werden:

CA-Zertifikat

Jetzt kann mit dem Erzeugen der Schlüssel und Zertifikate begonnen werden. Dazu klicken wir auf den Karteikartenreiter Zertifikate und dort auf die Schaltfläche Neues Zertifikat:

Daraufhin öffnet sich ein Fenster, in welchem der Zertifikatstyp ausgewählt werden muss. Hier wählen wir [default] CA aus und klicken auf alles übernehmen.

Anschließend klicken wir auf den Karteikartenreite Inhaber, füllen dort die notwendigen Felder aus und erstellen einen Schlüssel durch Klicken auf die Schaltfläche Erstelle einen neuen Schlüssel.

Daraufhin öffnet sich eine Dialogbox, in der wir den Namen, den Schlüsseltyp und die Schlüssellänge bestätigen können. Durch Klicken auf die Schaltfläche Erstellen wird der Schlüssel generiert.

Die Erstellung des Schlüssels wird daraufhin quittiert:

Jetzt ist das Zertifikat an der Reihe. Hierzu wechseln wir auf den Karteikartenreite Erweiterungen. Dort stellen wir die Gültigkeitsdauer des Zertifikates ein, in unserem -Beispiel 11 Jahre. Hier unbedingt daran denken, auf die Schaltfläche übernehmen zu Klicken, nachdem der Zeitraum eingestellt ist.

Unter Schlüsselverwendung und Netscape können die Einstellungen, die durch die Auswahl des Templates [default]CA vorbelegt wurden, überprüft und im Bedarfsfalle angepasst werden:

Durch Klicken auf die Schaltfläche OK wird das Zertifikat erzeugt:

Die Erstellung des Zertifikats wird uns auch wieder quittiert:

In der Oberfläche von XCA wird nun das soeben erzeugte CA-Zertifikat angezeigt. Mit diesem CA (Certificate Authority) - Zertifikat können wir nun unser Server-Zertifikat und unsere Benutzer-Zertifikate signieren.

Server-Zertifikat

Das Erstellen des Server-Zertifikats und der User-Zertifikate funktioniert annähernd auf die gleiche Weise. Dabei wird hier das CA-Zertifikat zur Signierung herangezogen und als Zertifikatsvorlage nicht [default]CA sondern [default]TLS_Server, respektive [default]TLS_Client verwendet.

Hierfür markieren wir das bereits erzeugte CA-Zertifikat und Klicken auf die Schaltfläche Neues Zertifikat.

Daraufhin öffnet sich wieder der Dialog zum Erstellen eines Zertifikates. Diesmal wähle wir als Zertifikatstyp [default]TLS_Server aus und Klicken wieder die Schaltfläche alles übernehmen:

Anschließend wechseln wir auch hier wieder auf die Karteikarte Inhaber und füllen dort wieder die bereits bekannten Felder aus. Anschließend erzeugen wir den Schlüssel durch Klicken auf die Schaltfläche Erstelle einen neuen Schlüssel:

Auch hier können wir die weiteren Angaben zum Schlüssel wieder bestätigen:

Die Generierung des Schlüssels wird uns natürlich wieder quittiert:

Wie bereits oben wechseln wir nun wieder auf die Karteikarte Erweiterungen und legen hier die Laufzeit des Zertifikats fest. Auch diesmal daran, denken, dass nach Eintrag der Laufzeit unbedingt die Schaltfläche übernehmen anzuklicken ist, sonst wird die eingestellte Laufzeit nicht übernommen:

Und auch hier können wir unter Schlüsselverwendung und Netscape die vorbelegten Einstellungen überprüfen und eventuell anpassen. Abschließend Klicken wir auf die Schaltfläche OK und das Zertifikat wird erzeugt.

Das Erzeugte Server-Zertifikat wird uns im Zertifikatsbaum nun unterhalb des CA-Zertifikats angezeigt, da es von diesem signiert wurde:

User-Zertifikat

Das Erstellen des Server-Zertifikats und der User-Zertifikate funktioniert annähernd auf die gleiche Weise. Dabei wird hier das CA-Zertifikat zur Signierung herangezogen und als Zertifikatsvorlage nicht [default]CA sondern [default]TLS_Clientverwendet.

Hierfür markieren wir das bereits erzeugte CA-Zertifikat und Klicken auf die Schaltfläche Neues Zertifikat.

Daraufhin öffnet sich wieder der Dialog zum Erstellen eines Zertifikates. Diesmal wählen wir als Zertifikatstyp [default]TLS_Client aus und Klicken wieder die Schaltfläche alles übernehmen:

Anschließend wechseln wir auch hier wieder auf die Karteikarte Inhaber und füllen dort wieder die bereits bekannten Felder aus. Anschließend erzeugen wir den Schlüssel durch Klicken auf die Schaltfläche Erstelle einen neuen Schlüssel:

Auch hier können wir die weiteren Angaben zum Schlüssel wieder bestätigen:

Die Generierung des Schlüssels wird uns natürlich wieder quittiert:

Wie bereits oben wechseln wir nun wieder auf die Karteikarte Erweiterungen und legen hier die Laufzeit des Zertifikats fest. Auch diesmal daran, denken, dass nach Eintrag der Laufzeit unbedingt die Schaltfläche übernehmen anzuklicken ist, sonst wird die eingestellte Laufzeit nicht übernommen:

Und auch hier können wir unter Schlüsselverwendung und Netscape die vorbelegten Einstellungen überprüfen und eventuell anpassen. Abschließend Klicken wir auf die Schaltfläche OK und das Zertifikat wird erzeugt.

Das Erzeugte Server-Zertifikat wird uns im Zertifikatsbaum nun unterhalb des CA-Zertifikats angezeigt, da es von diesem signiert wurde:

Die Erstellung des Zertifikats wird uns auch wieder quittiert:

Das Erzeugte User-Zertifikat wird uns im Zertifikatsbaum nun unterhalb des CA-Zertifikats angezeigt, da es von diesem signiert wurde:

Diffie-Hellman-Parameter

Zum Erzeugen der Diffie-Hellman-Parameter-Datei klicken wir auf das Menü Extra und wählen dort den Untermenüpunkt DH Parameter erstellen aus:

Anschließend können wir die Bits für die DH Parameter angeben:

Die Erzeugung der Diffie Hellman Parameter kann eine kleine Weile dauern. Anschließend können wir angeben, wo diese Datei gespeichert werden soll:

Abschließend bekommen wir die Bestätigung, dass die DH-Parameter gespeichert wurden:

Exportieren der Zertifikate und Schlüssel

Zertifikate und Schlüssel für den Server exportieren

Auf dem Synology NAS benötigen wir die folgenden Zertifikate:

  • ca.crt
  • server.crt

Um diese zu exportieren, öffnen wir wieder die XCA-Software mit der entsprechenden Datenbank und wechseln auf den Karteikartenreiter Zertifikate. Um ein Zertifikate zu exportieren müssen wir dieses markieren und anschließend auf die Schaltfläche Export klicken:

Nun bestimmen wir wo und in welchem Format wir das Zertifikat speichern wollen:

Exakt das Gleiche machen wir mit dem Server-Zertifikat:

Um den zum Server-Zertifikat gehörigen Schlüssel zu exportieren, wechseln wir auf die Karteikarte Private Schlüssel, markieren hier den Eintrag Server und klicken auch hier wieder auf die Schaltfläche Export

Beim Dateinamen des zu speichernden Schlüssels, wählen wir anstatt der Erweiterung .pem die Erweiterung .key
Dies macht deutlich, dass es sich bei der Datei um einen Schlüssel handelt und beugt späteren Konfigurationsfehlern vor:

Zertifikate und Schlüssel für den Client exportieren

Für eine VPN-Client-Konfiguration brauchen wir folgende Zertifikate:

  • ca.crt
  • user.crt

Da wir das CA-Zertifikat bereits exportiert haben, müssen wir noch das User-Zertifikat exportieren. Jeder User benötigt sein eigenes Zertifikat. Da wir nur einen User angelegt haben, müssen wir auch nur den einen exportieren. Dazu öffnen wir wieder die XCA-Software mit der entsprechenden Datenbank und wechseln auf den Karteikartenreiter Zertifikate. Um das User-Zertifikat zu exportieren, müssen wir dieses markieren und anschließend auf die Schaltfläche Export klicken. Also dasselbe Verfahren wie beim Server-Zertifikat (siehe oben).

Um den zum User-Zertifikat gehörigen Schlüssel zu exportieren, wechseln wir auf die Karteikarte Private Schlüssel, markieren hier den Eintrag User und klicken auch hier wieder auf die Schaltfläche Export und verfahren nach dem gleiche Prozedere wie beim Export des Server-Schlüssels (siehe oben).

Transferieren der Zertifikate auf das NAS

Von den bisher erzeugten Dateien, benötigen wir die folgenden Dateien auf dem NAS für die Konfiguration des VPN-Servers:

  • ca.crt
  • server.crt
  • server.key
  • dh2048.pem

Diese Dateien kopieren wir mit winscp als User Admin auf das NAS in das Verzeichnis /tmp/VPN.

Einrichtung des Synology VPN-Servers

Auf dem Synology-NAS muss über das Paket-Zentrum der VPN-Server installiert sein:

Hier machen wir erst einmal die Grundeinstellung in dem wir den Server öffnen und dann die OpenVPN-Parameter verwalten:

Hier setzen wir folgende Parameter. Die Wahl des Netzes ist natürlich frei den vorhandenen Gegebenheiten anpassbar:

Wenn wir diese Einstellungen gemacht haben, stoppen wir den VPN-Server wieder:

Jetzt sind alle Voraussetzungen geschaffen, um die manuellen Konfigurationsanpassungen auf dem Synology NAS durchzuführen.

Manuelle Konfigurationsanpassung

Hiermit verbinden wir uns auf das NAS als User admin entweder per Putty oder per ssh. In unserem Beispiel hat das NAS die IP-Adresse 172.22.0.10

ssh admin@172.22.0.10

Als erstes machen wir uns zum User root, um alle Konfigurationen lesen und schreiben zu können:

sudo su -

Danach wechseln wir in das Konfigurationsverzeichnis des VPN-Servers:

cd /usr/syno/etc/packages/VPNCenter/openvpn/

Über das Kommando ll geben wir uns den Inhalt des Verzeichnisses aus und erhalten folgendes Ergebnis:

drwxr-xr-x 3 root root  4096 Apr  8 19:57 .
drwxr-xr-x 7 root root 4096 Apr 8 20:28 ..
drwxr-xr-x 2 root root 4096 Apr 8 17:53 keys
-rw-r--r-- 1 root root 953 Apr 8 19:57 openvpn.conf
-rw-r--r-- 1 root root 10441 Apr 1 19:01 openvpn.conf.user.sample

In dem Verzeichnis key befinden sich die aktuellen Zertifikate und Schlüssel. Die eigentliche Konfigurationsdatei des OpenVPN-Servers befindet sich in der Datei openvpn.conf.

Die Datei openvpn.con.user.sample enthält eine Beispielkonfigurationsdatei mit allen möglichen Einträgen und deren Erklärung.

Wir wollen nun unsere Zertifikate und Schlüssel verwenden und benennen deswegen das Verzeichnis keys um…

mv key keys.org

…und erstellen anschließend ein neues Verzeichnis

mkdir keys

In dieses Verzeichnis wechseln wir nun hinein,…

cd keys

…um die von uns erzeugten und unter /tmp/VPN abgelegten Zertifikate in das Verzeichnis zu holen:

mv /tmp/VPN/* .

Anschließend löschen wir das nicht mehr benötigte Temporärverzeichnis:

rmdir /tmp/VPN

Zeigen wir uns nun den Inhalt unseres Verzeichnisses mit ll an, sollte es in etwas so aussehen:

drwxr-xr-x 2 root  root  4096 Apr 12 13:41 .
drwxr-xr-x 4 root root 4096 Apr 12 13:40 ..
-rw-r--r-- 1 admin users 1497 Apr 12 13:41 ca.crt
-rw-r--r-- 1 admin users 424 Apr 12 13:41 dh2048.pem
-rw-r--r-- 1 admin users 1554 Apr 12 13:41 server.crt
-rw-r--r-- 1 admin users 1679 Apr 12 13:41 server.key

Wir können sehen, dass die Dateien alle noch dem Benutzer admin und der Gruppe users gehören. Das wollen wir jetzt mit dem folgenden Kommando ändern:

chown root.root *

Danach sollte eine Auflistung des Verzeichnis mit ll das folgende Ergebnis bringen:

drwxr-xr-x 2 root root 4096 Apr 12 13:41 .
drwxr-xr-x 4 root root 4096 Apr 12 13:40 ..
-rw-r--r-- 1 root root 1497 Apr 12 13:41 ca.crt
-rw-r--r-- 1 root root 424 Apr 12 13:41 dh2048.pem
-rw-r--r-- 1 root root 1554 Apr 12 13:41 server.crt
-rw-r--r-- 1 root root 1679 Apr 12 13:41 server.key

Nun ändern wir noch die Rechte des Serverschlüssels (server.key), damit dieser nur von root gelesen werden kann:

chmod 600 server.key

Jetzt sollte eine Auflistung des Verzeichnis mit ll das folgende Ergebnis bringen:

drwxr-xr-x 2 root root 4096 Apr 12 13:41 .
drwxr-xr-x 4 root root 4096 Apr 12 13:40 ..
-rw-r--r-- 1 root root 1497 Apr 12 13:41 ca.crt
-rw-r--r-- 1 root root 424 Apr 12 13:41 dh2048.pem
-rw-r--r-- 1 root root 1554 Apr 12 13:41 server.crt
-rw------- 1 root root 1679 Apr 12 13:41 server.key

TLS Authentifizierungsschlüssel

Für die TLS-Verbindung zwischen Client und Server wird noch ein TLS-Authentifizierungsschlüssel (ta.key) benötigt, den wir jetzt hier direkt auf der Kommandozeile des NAS erzeugen werden.

Wir befinden uns immer noch im Verzeichnis /usr/syno/etc/packages/VPNCenter/openvpn/
Mit dem folgenden Befehl erzeugen wir die Datei ta.key:

openvpn --genkey --secret ta.key

Jetzt sollte eine Auflistung des Verzeichnis mit ll das folgende Ergebnis bringen:

drwxr-xr-x 2 root root 4096 Apr 12 13:41 .
drwxr-xr-x 4 root root 4096 Apr 12 13:40 ..
-rw-r--r-- 1 root root 1497 Apr 12 13:41 ca.crt
-rw-r--r-- 1 root root 424 Apr 12 13:41 dh2048.pem
-rw-r--r-- 1 root root 1554 Apr 12 13:41 server.crt
-rw------- 1 root root 1679 Apr 12 13:41 server.key
-rw------- 1 root root 636 Apr 12 13:42 ta.key

Damit haben wir alle Zertifikats- und Schlüsseldateien für den Betrieb des OpenVPN-Server beisammen und begeben uns wieder ein Verzeichnis höher:

cd ..

openvpn.conf

Wir editieren hier die Datei openvpn.conf und sorgen dafür, dass sie das folgende Aussehen erhält:

vi openvpn.conf
push "route 172.22.0.0 255.255.254.0"		# Unser Netz
push "route 10.8.0.0 255.255.255.0" # Das VPN Netz
push "dhcp-option DOMAIN mynet.local" # Der client soll folgende DOMAIN kennen
push "dhcp-option DNS 172.22.0.10" # und dafür diesen Nameserver verwenden

log /var/log/openvpn.log
verb 4

dev tun

management 127.0.0.1 1195
server 10.8.0.0 255.255.255.0

dh /usr/syno/etc/packages/VPNCenter/openvpn/keys/dh2048.pem # Diffie Hellman
ca /usr/syno/etc/packages/VPNCenter/openvpn/keys/ca.crt # CA-Zertifikat
cert /usr/syno/etc/packages/VPNCenter/openvpn/keys/server.crt # Server-Zertifikat
key /usr/syno/etc/packages/VPNCenter/openvpn/keys/server.key # Server Schluessel
tls-auth /usr/syno/etc/packages/VPNCenter/openvpn/keys/ta.key 0 # TLS Key
tls-server

max-clients 5
keepalive 10 60
reneg-sec 0

persist-tun
persist-key

plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
#client-cert-not-required # !!! das hier unbedingt auskommentieren !!!
username-as-common-name
duplicate-cn

status /tmp/ovpn_status_2_result 30
status-version 2
proto udp
port 1194
cipher AES-256-CBC
auth SHA512

openvpn.conf.user

Wir editieren hier die Datei openvpn.conf.user und sorgen dafür, dass sie das folgende Aussehen erhält:

vi openvpn.conf.user
log   /var/log/openvpn.log
verb 4
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
mute 20

local 172.22.0.10
port 1194
proto udp
dev tun

ca /usr/syno/etc/packages/VPNCenter/openvpn/keys/ca.crt
cert /usr/syno/etc/packages/VPNCenter/openvpn/keys/server.crt
key /usr/syno/etc/packages/VPNCenter/openvpn/keys/server.key
dh /usr/syno/etc/packages/VPNCenter/openvpn/keys/dh2048.pem

topology subnet
server 10.8.0.0 255.255.255.0

push "route 172.22.0.0 255.255.254.0"
push "route 10.8.0.0 255.255.255.0"
push "dhcp-option DOMAIN mynet.local"
push "dhcp-option DNS 172.22.0.10"

keepalive 10 60

tls-auth /usr/syno/etc/packages/VPNCenter/openvpn/keys/ta.key 0

cipher AES-256-CBC # AES

max-clients 10
user nobody
group nobody

persist-key
persist-tun

status openvpn-status.log

Nun ist der OpenVPN-Server fertig konfiguriert und kann wieder gestartet werden:

StartNAS

Client-Konfiguration

Für eine Client-Konfiguration sind gewisse Konfigurationsparameter für OpenVPN selbst notwendig, aber auch gewisse Zertifikate und Schlüssel:

  • ca.crt
  • user.crt
  • user.key
  • ta.key

Einem Benutzer eine Konfiguration zu übergeben wird natürlich erschwert, wenn eine solche Konfiguration aus 5 Dateien besteht. Schöner wäre es, wenn hier nur eine Datei zu übergeben wäre.

Dies können wir erreichen wenn wir die Zertifikats- und Schlüsseldateien inline in die Konfigurationsdateien mit einbetten. Schematisch sieht dass dann so aus:

ovpnparameter1
ovpnparameter2
:
ovpnparameterx
<ca>
hier kommt das CA-Zertifikat rein
</ca>
<cert>
hier kommt das User-Zertifikat rein
</cert>
<key>
hier kommt der Schlüssel zum User-Zertifikat rein
</key>
<tls-auth>
hier kommt der TLS-Schlüssel rein
</tls-auth>

Für unseren User, sähe dann die komplette Konfigurationsdatei user.ovpn so aus:

remote <ip-adresse oder fqdn VPN-Server> 1194 udp
verb 4
nobind
float
dev tun
proto udp
remote-cert-tls server
cipher AES-256-CBC
auth SHA512
prng SHA512 32
tun-mtu 1500
tls-version-min 1.2 or-highest
<ca>
-----BEGIN CERTIFICATE-----
MIIEKjCCAxKgAwIBAgIIXWEV87meCSQwDQYJKoZIhvcNAQELBQAwgZoxCzAJBgNV
BAYTAkRFMRswGQYDVQQIExJCYWRlbi1XdWVydHRlbWJlcmcxDjAMBgNVBAcTBVNh
bGVtMRkwFwYDVQQKExBkaWUuc3BlemlhbGlzdGVuMQswCQYDVQQLEwJJVDELMAkG
A1UEAxMCQ0ExKTAnBgkqhkiG9w0BCQEWGnRlY2huaWtAZGllc3BlemlhbGlzdGVu
LmRlMB4XDTIxMDQwOTA3MzcwMFoXDTMyMDQwOTA3MzcwMFowgZoxCzAJBgNVBAYT
AkRFMRswGQYDVQQIExJCYWRlbi1XdWVydHRlbWJlcmcxDjAMBgNVBAcTBVNhbGVt
MRkwFwYDVQQKExBkaWUuc3BlemlhbGlzdGVuMQswCQYDVQQLEwJJVDELMAkGA1UE
AxMCQ0ExKTAnBgkqhkiG9w0BCQEWGnRlY2huaWtAZGllc3BlemlhbGlzdGVuLmRl
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ZTmgOSU0bZ8XhTSX21m
PKd4wwHOl6U/qd062jjUSWJLY1bLG5m2udZ3KBsYf8r4kf1TuZK/VprK1n/n3Nx6
YDet4R6rRWsqnha6Czn/7LivX1GLkwtkN66d9iulnix83+WYgibdA9+BpIs3qraU
SAJoBXz52sAw6GYuNMWa+/5LlMJX6fJlJzjQMBMslQRWBH/wVnNyXnC9lWsxCYhv
4dQeFQ7fP0X8BPkQrQoHv/lFXSU99eTYRw+jzMIjX+8QJziZddy/kQ+ngsTC1dYM
jUXGnUMvbvqrbN101shSzvOAx3YNjXCd+Kwrw5TDcEm7UUl5O6FeUfUjPh1KGwvR
8QIDAQABo3IwcDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ24uoefwKopArA
iBX5VN0+NOuZlDALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMB4GCWCG
SAGG+EIBDQQRFg94Y2EgY2VydGlmaWNhdGUwDQYJKoZIhvcNAQELBQADggEBAMd8
tb7q7CrbqORxnW0Rx85vAFZfn5RSDiFmoNkRQL9b90J6kdYYfAD11F5hXKiEKXFh
bnznJeIh1y9IvQo7eMnP6w97KDm4D95bIlp/4uBvPXumqJQjL7rxqSMIm/hB/Yrb
EteIbQ+8jFPeoDqhUgbyHM+0EYPsv7ul+u17/fgpKAohyNSZo97dDXy02YU/bOGs
/VZOekfy/lHx+bF6EKF1iY0L2Z+OrlBuAIpSnYvzuIT0PS7JKYq/JIUvURsB0BnP
XYLuBuhnc/8uqsJocCVdlN0rL8v+Ybif8UG5Z1gJjnAeaKmL4D5wG8+pKfWEznw1
M8IjCeq5jsZMP81pla4=
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIEPzCCAyegAwIBAgIIb7a+QXk79kIwDQYJKoZIhvcNAQELBQAwgZoxCzAJBgNV
BAYTAkRFMRswGQYDVQQIExJCYWRlbi1XdWVydHRlbWJlcmcxDjAMBgNVBAcTBVNh
bGVtMRkwFwYDVQQKExBkaWUuc3BlemlhbGlzdGVuMQswCQYDVQQLEwJJVDELMAkG
A1UEAxMCQ0ExKTAnBgkqhkiG9w0BCQEWGnRlY2huaWtAZGllc3BlemlhbGlzdGVu
LmRlMB4XDTIxMDQwOTA3NDkwMFoXDTMxMDQwOTA3NDkwMFowgZsxCzAJBgNVBAYT
AkRFMRswGQYDVQQIExJCYWRlbi1XdWVydHRlbWJlcmcxDjAMBgNVBAcTBVNhbGVt
MRkwFwYDVQQKExBkaWUuc3BlemlhbGlzdGVuMQswCQYDVQQLEwJJVDEOMAwGA1UE
AxMFdXNlcjExJzAlBgkqhkiG9w0BCQEWGHVzZXIxQGRpZXNwZXppYWxpc3Rlbi5k
ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNLB6nbTgCD+zX+NZOR
Ncc8BPdrOepAZBTwQPHyXNmNnCsKPFQeNlYQwlYi2RFJe/Srzu5MdqxbAHC17vg2
xVmDv+3dbrQHQCqLjrE9cHONtLjMidNZl/poGVQJDccYoz3LLZC1jXvLlf7hkUZ+
RI40XGoaYlsXc/lwCQo2j69irk1gSeYShVyOvKNnsdN4o+VeT0ytMcfpw1TayvMW
1IillFgi31QInEsTfdTEwVVnTH3O3QfG8Qj2HR9c2CleXriG/zmFlESm75X5gSe+
hFfmQMTWe4VMXTVzJy+M/i7cSBzq4HgF0hiFTsLEv+GN+gAj0e+4/UHc5nb7Y8Vh
4h0CAwEAAaOBhTCBgjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSCZtXv6NvVCnbu
1h4mkiavH8lR6zALBgNVHQ8EBAMCA7gwEwYDVR0lBAwwCgYIKwYBBQUHAwIwEQYJ
YIZIAYb4QgEBBAQDAgWgMB4GCWCGSAGG+EIBDQQRFg94Y2EgY2VydGlmaWNhdGUw
DQYJKoZIhvcNAQELBQADggEBAA0bVDXyGKu9kZdLujtN0QYZ72Xmq/Nmcm21evHD
7UOiLh/VeIQtTkygfx5ubjUZdjdUthClZQ2y0bgasyScmrZM9BTgl53ELAhASN3R
vpXLhIeDrA3VgJTsdW6ETd9yUnLqEtCb8aE4tMU3h3VUhdZlMyfeEvlOygvYJJDj
KInMMkigsohd5o2hG2xIKAS1R2xp4ebpP+/3W1pnD54fiepT4ivlqt0Oqqol2ogI
JA6KSSC6VHVxlRmwOLBLSTw8tPhUyuAjGmNcvmS1N/FR1irIE06NAH3enPk3gpqi
J0EqJeV1/yADWI9HByJV3o4bG14orlesLtXZ1fW9ZJkJJto=
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAw0sHqdtOAIP7Nf41k5E1xzwE92s56kBkFPBA8fJc2Y2cKwo8
VB42VhDCViLZEUl79KvO7kx2rFsAcLXu+DbFWYO/7d1utAdAKouOsT1wc420uMyJ
01mX+mgZVAkNxxijPcstkLWNe8uV/uGRRn5EjjRcahpiWxdz+XAJCjaPr2KuTWBJ
5hKFXI68o2ex03ij5V5PTK0xx+nDVNrK8xbUiKWUWCLfVAicSxN91MTBVWdMfc7d
B8bxCPYdH1zYKV5euIb/OYWURKbvlfmBJ76EV+ZAxNZ7hUxdNXMnL4z+LtxIHOrg
eAXSGIVOwsS/4Y36ACPR77j9QdzmdvtjxWHiHQIDAQABAoIBAQCYXWJmQCaUOmR1
FJdCQWmevpH1Yx/1RjWPLH7PBVMxnM05uyukSUoFTeABCgEm/pkKJD03KEryX7Fx
PlBqMXk5RJQqhbdIF9wVFXrHh3LDhMx53YKudVkgUbVpHgM00WES5gDvxOXUrtqg
1+XbBMqB1BJB6cHQ5fRiqOk0oarqnoqfD/3g09DRIzPlYBXNX0XmmxfzYWcw5J7T
etU3usCIXKrCfeoU9tljWbqyaNGTzgdCaQe7zIiAMSVdE6trGaan7OVaI7Wm45A2
lbPWz19DrgBE0AIlNAVTL1bpWih/8lfIVdzxJq1O89jNZYHLAjY99m+4Pe36sIFf
cOTxup4BAoGBAOsVY9TvA5HkXCV3eXI64jXsni6+HepaeC/jOet7XxmWzkzez2qx
zWgyZTdY2FbIeKW0W+wnR7A8swTG6PwPojqOpQYXStW8wWPgGjyRfNucVF8iGGF+
3dGQcoCsRMP9jwDeKoXl/dfA8QO/HxRxaJdn3claH5F9UNfkmyHInwqdAoGBANSr
UEKX1OO7yeJdc9ZqwWav/hKn4IVIziMY0gfasPRufOgjwJb9mYirXOPyEfT1fC/a
vF/JijD861/FSgGB0JmdL3I6Co90VEeK9vkFxU0YDFOgEU3S6Vu9K/p1HiGecyK7
hrwYx5gFfiyoOO6kHG1DaSrfR8UTNKdgw0d/JN2BAoGBAJhyB4o28Oaz4rl9L6lO
3BDB/5YqPXYS8uuC+7VkDLioXeHlfzYeVSijvZVVrP0iBXLXceDDXC7CPgj0AHQs
ozQ7+nHnuuS+Ad8FnZ33brNvPhtvHcZjoe7bMBWXIQTDse+LIqIwEhvOh7y5PKti
G8RLW7zOD7imPj2yhpMy6UfVAoGAYwMfauGljCFx7KH1vG4XfOeTMrxWG7e5wT1d
C6sVl7eZD7sVfzaytJ6TsMyS76kbGGyOJ0p9vDEEpKIFwo3dwKcd3+CF6iQO2QAp
2+aD5VC87HIpnEIFw2BfiUvdq2lJ0XHdWNVwl6Z3B/OKDhD56yTnYb5ye55ldUfn
ovHfCAECgYAOXylILDDjxMmw29RcADL7SqR9We8du1Vh1CNUaY7w6bMXhPBS2/7i
GDvFiWBAC69Qie4cgZNfe93k9KyEUGlOw/fU1JbE9iPl9y6YwQ9sFe2M9u148yU0
H5jNBsId2Xb4oX3C1w1/9DQ4/hiw0X0LxjdeH7Pakl8nkURwqzVpIg==
-----END RSA PRIVATE KEY-----
</key>
tls-client
fast-io
pull
auth-user-pass
auth-nocache
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
0cf74d4e8fe53c31e17fb5cbed4ea9cf
6f58cc5335bea0112da22d7dc5d9b5b0
fa36be703f353237a616b784be79ab69
ac286d821b6147d4a077f8357ce7649b
27812a5d2d4b8df41bbfc5357b7acf58
084353ee8c9efe0a497dece3bec7dde6
c2eda85eb491588252f0bc75b75bf156
85b2b22d7ed3cb4e4d52c0ab8847608f
a7490028a055bec0db375ae544a35e9c
6446506ac50ba0895d30738537b6370a
85c08968ee3672919630808b4104b77e
9c3c382b884ae2d84cc4d00c3c077642
b9d0f43b6e46f15faf879be5074060b0
04039cf2b3f06e2f198242bbeec879f8
ed8db716632ccea8f3cbe197f8eefb11
70fe84c3260bbd4e0fb7e279c2e6bd3d
-----END OpenVPN Static key V1-----
</tls-auth>

Diese kann Direkt in ein OpenVPN-fähiges Client-Programm importiert werden. Der Client kann nun direkt mit dem VPN-Server eine Verbindung aufbauen. Der Benutzer muss sich noch mit Benutzernamen und Passwort authentifizieren und wenn dieser Benutzername auch mit dem Benutzernamen im Zertifikat übereinstimmt, so kommt die VPN-Verbindung zustande.