VPN Zertifikate erstellen

certificate-hiWährend der Installation des OpenVPN-Servers auf einem Linux basierenden System werden
(in unserem Fall) die sog. easy-rsa Tools mit installiert. Mit diesen gestaltet es sich einfach,
Zertifikate und Schlüssel für Server und Clients zu erstellen.

 

 

Folgende Befehle müssen jeweils als Benutzer root ausgeführt werden.

Zum OpenVPN-Script Ordner wechseln

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

Bevor in diesem Verzeichnis etwas verändert oder durchgeführt wird, sollte die Datei vars gesichert werden.

cp vars vars-org

Folgend die Erstellungsbefehle der nötigen Zertifikate und Schlüssel

source ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client1
./build-key client2 #usw, für weitere Clients
./build-dh

Damit wurden nun alle notwendigen Zertifikate und Schlüssel erstellt, welche für alle Seiten der VPN-Verbindung notwendig sind. Diese wurden im Verzeichnis keys abgelegt.
Es ist wichtig, dass diese Dateien keinem Dritten zugänglich gemacht werden. Mit diesen kann jeder, der über sie verfügt, deinem privaten Netzwerk beitreten!

Nun zum Einzelnen der oben genannten Befehle (Scripts).

Vor all den o.a. Befehlen besteht die Möglichkeit, gewisse Punkte vorab zu definieren. Dies geschieht in und über die Datei vars, welche mit einem Editor dazu bearbeitet werden kann.
Das anschließende oder alleinige Ausführen von source ./vars exportiert diese Variablen und steht somit den darauffolgenden Scripts zur Verfügung.

Stelle vor dem Ausführen von ./clean-all sicher, dass sich im Ordner keys keine alten Dateien von früheren Erstellungen befinden. Dieses Script löscht alte Dateien und Variablen so dass die Umgebung für eine neue Erstellung bereinigt wird.

Country Name (2 letter code) [US]:DE
State or Province Name (full name) [CA]:DE
Locality Name (eg, city) [SanFrancisco]:Berlin
Organization Name (eg, company) [Fort-Funston]:Mueller
Organizational Unit Name (eg, section) []:Tomato
Common Name (eg, your name or your servers hostname) [Fort-Funston CA]:Tomato VPN Server
Email Address [me@myhost.mydomain]:vpn@example.com

Die Ausführung von  ./build-key-server server erstellt die Dateien server.crt und server.key. Hier ein Beispiel:

Country Name (2 letter code) [US]:DE
State or Province Name (full name) [CA]:DE
Locality Name (eg, city) [SanFrancisco]:Berlin
Organization Name (eg, company) [Fort-Funston]:Mueller
Organizational Unit Name (eg, section) []:Tomato
Common Name (eg, your name or your servers hostname) [server]:Tomato VPN Server
Email Address [me@myhost.mydomain]:vpn@example.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:Passwort
An optional company name []:Mueller GmbH

Das Script ./build-key Client1 erstellt Client1.crt und Client1.key. Beispiel:

Country Name (2 letter code) [US]:DE
State or Province Name (full name) [CA]:DE
Locality Name (eg, city) [SanFrancisco]:Berlin
Organization Name (eg, company) [Fort-Funston]:Mueller
Organizational Unit Name (eg, section) []:Tomato
Common Name (eg, your name or your servers hostname) [client1]:Client1
Email Address [me@myhost.mydomain]:vpn@example.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:Passwort
An optional company name []:Mueller GmbH

Solange du in der Datei vars keine Veränderungen vornimmst, kannst du jederzeit weitere Clientzertifikate durch den Befehl ./build-key ClientX erstellen, falls du planst, weitere Clients mit deinem OpenVPN-Server zu verbinden.

Schlussendlich erstellt das Script ./build-dh die Datei dh1024.pem.