Improve CA documentation

This commit is contained in:
Jan Philipp Timme 2018-09-13 14:10:47 +02:00
parent fdb04fc9a4
commit a78a734831

View File

@ -1,4 +1,4 @@
\chapter{Vorwort}
\chapter{Vorwort} \label{cpt:premable}
Dieses Dokument wurde im Rahmen der Masterarbeit \enquote{Konzeption und Umsetzung eines IPv6-VPN für die Abteilung Informatik} erstellt.
Im Rahmen der Masterarbeit wird beschrieben, wie ein IP6-VPN-Dienst auf Basis von OpenVPN konzipiert und eingerichtet wird.
Für den Betrieb dieses Dienst wird eine Zertifizierungsstelle (\textit{Certificate Authority}, kurz CA) benötigt, die für Benutzer und den Serverbetreiber SSL-Zertifikate ausstellen kann.
@ -10,7 +10,7 @@ Die in diesem Dokument beschriebene Konfiguration der CA wurde im Rahmen der Mas
Entscheidungen, die zu der hier beschriebenen Konfiguration geführt haben können in der Masterarbeit nachvollzogen werden.
\chapter{Aufbau der Zertifizierungsstelle}
\chapter{Aufbau der Zertifizierungsstelle} \label{cpt:build_ca}
Bevor Zertifikate durch die CA ausgestellt werden könnnen, muss die CA erst eingerichtet werden.
Dies geschieht auf Basis von EasyRSA, welches von den OpenVPN-Entwicklern zur Verfügung gestellt wird.
EasyRSA ist eine Sammlung von Skripten, die unter Verwendung von OpenSSL den Funktionsumfang einer Zertifizierungsstelle bieten.
@ -25,7 +25,7 @@ Für die Durchführung aller Schritte dieser Anleitung werden die folgenden Prog
\end{itemize}
\section{Installation der CA}
\section{Installation der CA} \label{sct:install_ca}
Aktuelle Versionen von EasyRSA sind auf GitHub unter \enquote{Releases}\footnote{\url{https://github.com/OpenVPN/easy-rsa/releases}} zu finden.
Neben den auf GitHub zur Verfügung stehenden Releases werden auch GPG-Signaturen angeboten, über welche die Releases authentisiert werden können.
Im oben erwähnten Repository sind unterhalb von \texttt{./release-keys/README.md}\footnote{\url{https://github.com/OpenVPN/easy-rsa/tree/v3.0.4/release-keys}} passende GPG-Schlüssel aufgeführt.
@ -53,7 +53,7 @@ cd EasyRSA-3.0.4
\end{lstlisting}
\section{Konfiguration der CA}
\section{Konfiguration der CA} \label{sct:configure_ca}
Im nächsten Schritt wird auf Basis der Datei \texttt{vars.example} die Konfigurationsdatei \texttt{vars} erzeugt und anschließend bearbeitet.
\begin{lstlisting}
cp vars.example vars
@ -99,7 +99,7 @@ set_var EASYRSA_CRL_DAYS 180
Mit der Durchführung der aufgeführten Änderungen ist die Konfiguration der CA abgeschlossen.
\section{Initialisierung der CA}
\section{Initialisierung der CA} \label{sct:initialize_ca}
Als nächstes muss die Verzeichnisstruktur der CA initialisiert werden.
\begin{lstlisting}
./easyrsa init-pki
@ -116,7 +116,7 @@ Sollte der private Schlüssel in die Hände eines Angreifers gelangen, so kann d
Ein Passwortschutz wird ausdrücklich empfohlen sofern keine sonstigen Maßnahmen zum Schutz des privaten Schlüssels der CA vor unbefugtem Zugriff getroffen werden!
\section{Bereitstellung der CA-Konfiguration für Benutzer}
\section{Bereitstellung der CA-Konfiguration für Benutzer} \label{cpt:provide_ca_config}
Damit Benutzer korrekte Zertifikatsanträge erzeugen können, muss ihnen die Datei \texttt{vars} zur Verfügung gestellt werden.
Um Kompatibilitätsprobleme durch die Verwendung von verschiedenen EasyRSA-Versionen auszuschließen, wird empfohlen für Benutzer ein passendes Paket zusammenzustellen.
@ -162,7 +162,7 @@ rm -rf $TD
Anschließend kann das angefertigte \texttt{*.zip}-Archiv den Benutzern zur Verfügung gestellt werden.
\chapter{Beantragen von Zertifikaten}
\chapter{Beantragen von Zertifikaten} \label{cpt:request_cert}
Um ein Zertifikat von der CA zu beantragen, wird das bereits vorkonfigurierte EasyRSA-Paket benötigt, welches durch das IT-Team der Abteilung Informatik bereitgestellt wird.
Dieses kann nun in einem lokalen Ordner entpackt werden.
Eine lauffähige Installation von OpenSSL, welches auch als Abhängigkeit von OpenVPN benötigt wird, wird ebenfalls vorausgesetzt.
@ -203,7 +203,7 @@ In diesem Schritt wurden nun zwei neue Dateien erzeugt:
\end{itemize}
\chapter{Ausstellen von Zertifikaten}
\chapter{Ausstellen von Zertifikaten} \label{cpt:issue_cert}
Hat ein Benutzer einen Zertifikatsantrag erzeugt, so kann auf Basis dieses Antrags ein gültiges Zertifikat durch die CA ausgestellt werden.
Hierfür muss der Zertifikatsantrag zunächst aus der vom Benutzer eingereichten \texttt{*.req}-Datei importiert werden.
Dafür wird der Befehl \texttt{import-req} verwendet:
@ -243,7 +243,7 @@ EASYRSA_CERT_EXPIRE=730 ./easyrsa sign-req server aither.inform.hs-hannover.de
\end{lstlisting}
\chapter{Erzeugen der CRL}
\chapter{Erzeugen der CRL} \label{cpt:create_crl}
Der OpenVPN-Server verwendet die von der CA ausgestellte CRL zur Überprüfung der Gültigkeit von Clientzertifikaten.
In der Konfigurationsdatei des OpenVPN-Servers wird die CRL-Datei durch die Option \texttt{verify-crl /path/to/crl.pem} angegeben.
@ -256,5 +256,5 @@ Ist der private Schlüssel der CA mit einem Passwort geschützt, so wird bei die
\textbf{Achtung:} Der OpenVPN-Server lehnt eine abgelaufene CRL-Datei ab und verweigert dann den Dienst.
Deshalb sollte die CRL durch die CA regelmäßig erneuert werden und die Kopie der CRL auf dem VPN-Server regelmäßig aktualisiert werden.
Anschließend sollte der VPN-Dienst via \texttt{systemctl reload ...} neu geladen werden.
Anschließend sollte der VPN-Dienst via \texttt{systemctl reload openvpn@dienstname.service} neu geladen werden.
Eine Automatisierung dieses Vorgangs ist möglich und wird empfohlen.