[OpenVPN] Teil 2: Anlegen der Zertifikate und Schlüssel für den Server

Update 12.08.2016: Auf OpenVPN 2.3.4 aktualisiert.
Update: Verlinkung auf weitere Anleitungsteile am Ende hinzugefügt.

Im Teil 2 beschreibe ich, wie man die Zertifikate und Schlüssel für den Server anlegt.

Ausserdem wird gleich der Grundstein gelegt, damit man später auch bereits vergebene Zertifikate zurückziehen kann.


Update 08.03.2010: Variable KEY_NAME exportiert
Update 21.09.2009: Variablen-Export hinter „source ./vars“ verschoben (bei Debian Lenny werden sie sonst überschrieben).



Anlegen der Zertifikate & Schlüssel für den Server


Damit das Rad nicht doppelt erfunden wird, haben die OpenVPN Entwickler die Tool-Sammlung easy-rsa erstellt. Diese kopiert man sich in sein OpenVPN Verzeichnis:

cp -R /usr/share/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa

Anschließend definiert man ein paar Standardwerte in der globalen Konfiguration /etc/openvpn/easy-rsa/vars:

export KEY_COUNTRY="DE"
export KEY_PROVINCE="Saxony"
export KEY_CITY="Chemnitz"
export KEY_ORG="Knuddelbunte Welt Organisation"
export KEY_EMAIL="hier_kommt_die_email@hi.n.de"

Nun lesen wir die Standardwerte ein…

source vars

… und initialisieren die Schlüssel

./clean-all

Jetzt ist es an der Zeit, die Zertifikat Autorität und das Server Zertifikat anzulegen.
Zuerst die Autorität (die vorher festgelegten Standardwerte werden automatisch voreingestellt):

./build-ca
Country Name (2 letter code) [DE]:
State or Province Name (full name) [Saxony]:
Locality Name (eg, city) [Chemnitz]:
Organization Name (eg, company) [Knuddelbunte Welt Organisation]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [Knuddelbunte Welt Organisation CA]:
Name [EasyRSA]:
Email Address [hier_kommt_die_email@hi.n.de]:

Und dann das Server Zertifikat:

./build-key-server server
Country Name (2 letter code) [DE]:
State or Province Name (full name) [Saxony]:
Locality Name (eg, city) [Chemnitz]:
Organization Name (eg, company) [Knuddelbunte Welt Organisation]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:
Name [EasyRSA]:
Email Address [hier_kommt_die_email@hi.n.de]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'DE'
stateOrProvinceName :PRINTABLE:'Saxony'
localityName :PRINTABLE:'Chemnitz'
organizationName :PRINTABLE:'Knuddelbunte Welt Organisation'
commonName :PRINTABLE:'server'
name :PRINTABLE:'EasyRSA'
emailAddress :IA5STRING:'hier_kommt_die_email@hi.n.de'
Certificate is to be certified until Aug 10 18:52:51 2026 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Zum Schluß noch schnell die Diffie Hellmann Parameter generieren…

./build-dh

… und die crl.pem-Datei erstellen, mit der es später möglich ist, vergebene Zertifikate ungültig zu machen.

export KEY_CN=
export KEY_OU=
export KEY_NAME=
export KEY_ALTNAMES=
openssl ca -gencrl -out /etc/openvpn/crl.pem -config openssl-1.0.0.cnf

OpenVPN Anleitung: Teil 1, Teil 2, Teil 3, Teil 4, Teil 5

4 Kommentare

  1. wie stelle ich die smilies in der Konsole dar? Und wo genau findet sich RINTABLE in der OpenVPN Doku?

    Echt, Mann, wenn schon, dann richtig, oder löschen!

Kommentar hinterlassen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.