Improve CA documentation
This commit is contained in:
parent
fdb04fc9a4
commit
a78a734831
|
@ -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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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}
|
\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.
|
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.
|
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.
|
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}
|
\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.
|
Im nächsten Schritt wird auf Basis der Datei \texttt{vars.example} die Konfigurationsdatei \texttt{vars} erzeugt und anschließend bearbeitet.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
cp vars.example vars
|
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.
|
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.
|
Als nächstes muss die Verzeichnisstruktur der CA initialisiert werden.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
./easyrsa init-pki
|
./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!
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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}
|
\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.
|
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.
|
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:
|
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}
|
\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.
|
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.
|
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.
|
\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.
|
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.
|
Eine Automatisierung dieses Vorgangs ist möglich und wird empfohlen.
|
||||||
|
|
Loading…
Reference in New Issue