From ede5d0e37cf61c230a6f7f6badc3b545b806e568 Mon Sep 17 00:00:00 2001 From: Jan Philipp Timme Date: Sat, 1 Sep 2018 22:01:03 +0200 Subject: [PATCH] Gather knowledge about easyrsa --- Dokumentation CA | 60 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/Dokumentation CA b/Dokumentation CA index 300b249..624389a 100644 --- a/Dokumentation CA +++ b/Dokumentation CA @@ -1,19 +1,63 @@ +Aufbau einer CA für den VPN-Dienst + +* Beschaffung der gewünschten Version von EasyRSA + Verifikation +* Integration der eigenen Anleitungen und Konfiguration +* Verpacken für Clients/Server und CA selbst + + * Installation von easy-rsa -TODO: Version 2 oder Version 3? -ggf. openssl in den Pfad legen, falls Windows +Voraussetzung: openssl muss bereits installiert sein und im Pfad eingetragen sein. +Unter Windows kann das von OpenVPN mitgebrachte openssl verwendet werden - dazu kann der Ordner "bin" einfach in den Pfad eingetragen werden. +Ein Neustart des Computers ist notwendig, um die Änderung zu übernehmen. +Mehr dazu unter https://github.com/OpenVPN/easy-rsa/blob/v3.0.4/distro/windows/README-Windows.txt -* Verifikation der Authentizität +# Beschaffung/Installation von EasyRSA-3.0.4 -* Erzeugen der CA +Aktuelle Releases sind unter https://github.com/OpenVPN/easy-rsa/releases zu finden. +GPG-Schlüssel zur Authentisierung der Releases sind im easy-rsa Repository unterhalb von ./release-keys/README.md aufgeführt. +https://github.com/OpenVPN/easy-rsa/tree/master/release-keys + +# Release v3.0.4 beschaffen und den dazu passenden GPG-Key +gpg --recv-keys 6F4056821152F03B6B24F2FCF8489F839D7367F3 +wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz +wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz.sig +gpg --verify EasyRSA-3.0.4.tgz.sig EasyRSA-3.0.4.tgz +tar xzf EasyRSA-3.0.4.tgz +cd EasyRSA-3.0.4 -* Erzeugen eines CSR +# Initialisierung der CA +cp vars.example vars +vim vars +# Konfiguration der CA anpassen: +# * Standardgültigkeit für ausgestellte Zertifikate +# * Name der CA, etc -* Signieren eines CSR +# Verzeichnisstruktur erzeugen (löscht bereits existierende Struktur!) +./easyrsa init-pki +# CA-Zertifikat erzeugen, Passwort für privaten Schlüssel wird verlangt +./easyrsa build-ca -* Erzeugen des Serverzertifikats +# Regelbetrieb der CA +# Benutzer erzeugt Request +openssl req -utf8 -new -newkey rsa:4096 -keyout /tmp/cert.key -out /tmp/cert.req -subj "/CN=foobar" [-nodes] +# Request importieren (erfordert einen eindeutigen Namen - hier "timmeja") +./easyrsa import-req /tmp/EasyRSA-3.0.4/pki/reqs/jpt-client.req timmeja + +# Request signieren mit Client-Rolle (erfordert Passwort für privaten Schlüssel der CA) +./easyrsa sign-req client timmeja + +# Zertifikat inspizieren und an Antragsteller übergeben +openssl x509 -in pki/issued/timmeja.crt -noout -text + +# CRL erzeugen und an OpenVPN-Server übergeben +./easyrsa gen-crl + +Achtung: Wenn die CRL ausgelaufen ist, muss sie neu generiert werden. Das kann den VPN-Server im Betrieb blockieren. +Daher ist eine hohe Gültigkeitsdauer mit on-demand-replacement eine Option. +Ansonsten empfiehlt es sich, diesen Kram zu automatisieren. Regelmäßig eine neue CRL durch CA bereitstellen, von dieser beziehen und den VPN-Server ggf. neustarten. +In der Serverkonfiguration: verify-crl /path/to/crl.pem -* Erzeugen des Clientzertifikats \ No newline at end of file