http://www.pronix.de -> Tutorials -> OpenVPN Tutorial -> OpenVPN Serverinstallation -> Erstellung der Zertifikate

Erstellung der Zertifikate

Wechslen Sie in das OpenSSL Verzeichnis:

TTY

# cd /usr/local/openssl

#

Das Schlüsselpaar für CA

Das Schlüsselpaar wird wie folgt generiert. Für weitere Optionen schauen Sie sich bitte die man page von openssl an.

TTY

# openssl genrsa -aes256 -out private/vpn-cakey.pem 2048

Generating RSA private key, 2048 bit long modulus

............................................................+++

.............................................................+++

e is 65537 (0x10001)

Enter pass phrase for private/vpn-cakey.pem:

Verifying - Enter pass phrase for private/vpn-cakey.pem:

# openssl req -new -x509 -days 3650 -key private/vpn-cakey.pem -out vpn-ca.pem -set_serial 1

Enter pass phrase for private/vpn-cakey.pem:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

if you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:de

State or Province Name (full name) [Some-State]:Niedersachsen

Locality Name (eg, city) []:Rechenzentrum

Organization Name (eg, company) [Internet Widgits Pty Ltd]:pronix

Organizational Unit Name (eg, section) []:Administration

Common Name (eg, YOUR name) []:VPN

Email Address []:your@mail.address

Wir entziehen noch die Zugriffsrechte für das Verzeichnis private:

TTY

# chmod 0700 private

Die Zertifikate für die Clients

Wir müssen ein paar Vorbereitungen treffen.
Als erstes brauchen wir das Inhaltsverzeichnis für die Zertifikate, dass wir rasch erstellen:

TTY

# touch index.txt

Und wir brauchen einen Zähler, der uns die Zertifikate durchnummeriert:

TTY

# echo "01" > serial

Jetzt können wir damit beginnen, die Zertifikate für die Clients zu erstellen. Dazu stellen wir einen CRL(CertificateSigningRequest) an unseren CA und übergeben dabei den Public Key des entsprechenden Clients. Wir beginnen mit dem Public Key für unseren Server:

TTY

# openssl req -new -newkey rsa:1024 -out certs/servercsr.pem -nodes -keyout private/serverkey.pem -days 3650

Generating a 1024 bit RSA private key

..++++++

............................++++++

writing new private key to 'private/serverkey.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:de

State or Province Name (full name) [Some-State]:Niedersachsen

Locality Name (eg, city) []:Rechenzentrum

Organization Name (eg, company) [Internet Widgits Pty Ltd]:pronix

Organizational Unit Name (eg, section) []:Administration

Common Name (eg, YOUR name) []:server

Email Address []:your@mail.adress

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

Mit diesem Public Key können wir nun das Zertifikat erstellen:

TTY

# openssl x509 -req -in certs/servercsr.pem -out certs/servercert.pem -CA vpn-ca.pem -CAkey private/vpn-cakey.pem -CAserial /usr/local/openssl/serial -days 3650

Signature ok

subject=/C=de/ST=Niedersachsen/L=Rechenzentrum

/O=pronix/OU=Administration/CN=server

/emailAddress=your@mail.adress

Getting CA Private Key

Enter pass phrase for private/vpn-cakey.pem:

Auf die selbe Art und Weise werden wir jetzt die Pärchen für unsere Clients erzeugen. Der Übersichtlichkeit halber benennen wir die Dinger nach den Abteilungen(chef, filiale, verwaltung)

An dieser Stelle beschreibe ich nur die Erstellung für den ersten Client(chef), da die anderen Pärchen ebenso erzeugt werden:

TTY

# openssl req -new -newkey rsa:1024 -out certs/chefcsr.pem -nodes -keyout private/chefkey.pem -days 3650

Generating a 1024 bit RSA private key

.....++++++

.......................++++++

writing new private key to 'private/chefkey.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:de

State or Province Name (full name) [Some-State]:Niedersachsen

Locality Name (eg, city) []:Travels

Organization Name (eg, company) [Internet Widgits Pty Ltd]:pronix

Organizational Unit Name (eg, section) []:chef

Common Name (eg, YOUR name) []:Boss

Email Address []:chef@mail.address

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

# openssl x509 -req -in certs/chefcsr.pem -out certs/chefcert.pem -CA vpn-ca.pem -CAkey private/vpn-cakey.pem -CAserial /usr/local/openssl/serial -days 3650

Signature ok

subject=/C=de/ST=Niedersachsen/L=Travels/O=pronix

/OU=chef/CN=Boss/

emailAddress=chef@mail.address

Getting CA Private Key

Enter pass phrase for private/vpn-cakey.pem:

Diffie-Hellmann Parameter erzeugen

Unser letzter Schritt im Zertifikat Djungel. Die Berechnung dauert eine Weile, wir können uns also den verdienten Admin Kaffee genehmigen.

TTY

# openssl dhparam -out dh1024.pem 1024

Generating DH parameters, 1024 bit long safe prime, generator 2

This is going to take a long time

...+................................................

...

Weiter mit Konfiguration des Servers