Wie bei fast jeder Verschlüsselungsmethode müssen wir auch für VPN Zertifikate erstellen. Wir brauchen dabei ein Zertifikat für den Server und dann mehrere für die ganzen Clients. Das Serverzertifikat legen wir im Verzeichnis "private" unterhalb von "/usr/local/etc/openvpn/" ab. Die Zertifikate kommen in das Unterverzeichnis "/certs/".

  • Einmalig für den VPN-Server, wobei "3650" eine Gültigkeit von 10 Jahren darstellt:

    1. certs/vpn-ca.pem (ca):

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

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

      # chmod 0700 private

      Jetzt sind die Zertifikate nur für den Besitzer zugänglich (nämlich root).

    2. dh1024.pem (dh):

      # openssl dhparam -out dh1024.pem 1024

    3. Jetzt legen wir noch ein paar allgemeine Dateien an, die wir für die Erstellung der Client- und Serverzertifikate benötigen:

      # touch index.txt

      # echo "01" > serial

    4. private/serverkey.pem (key):

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

    5. certs/servercert.pem (cert):

      # 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

    6. Stelle sicher, dass die Keys nur von root lesbar sind. Diese dürfen unter keinen Umständen in die falschen Hände geraten, da sonst der Datenverkehr entschlüsselbar ist.

  • Für jeden Client erstellen wir jetzt Zertifikate:

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

    # openssl x509 -req -in certs/client1csr.pem -out certs/client1cert.pem -CA vpn-ca.pem -CAkey private/vpn-cakey.pem -CAserial /usr/local/etc/openvpn/serial -days 3650