Improve documentation for CA
This commit is contained in:
parent
93688b634e
commit
eb73383906
|
@ -3,79 +3,115 @@ Dieses Dokument wurde im Rahmen der Masterarbeit \enquote{Konzeption und Umsetzu
|
|||
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 ausstellt.
|
||||
In diesem Dokument wird beschrieben, wie die Zertifizierungsstelle aufgebaut und konfiguriert wird.
|
||||
Weiterhin sind Anleitungen für die Benutzer und die Serveradministratoren des VPN-Dienst enthalten, mit deren Hilfe Zertifikate bei der Zertifizierungsstelle beantragt werden können.
|
||||
Für die Zertifizierungsstelle ist eine Anleitung enthalten, anhand derer Zertifikate für eingereichte Zertifikatsanträge ausgestellt werden können.
|
||||
|
||||
In diesem Dokument wird beschrieben, wie die CA aufgebaut und konfiguriert wird.
|
||||
Weiterhin sind Anleitungen für die Benutzer und die Serveradministratoren des VPN-Dienst enthalten, mit deren Hilfe Zertifikate bei der CA beantragt werden können.
|
||||
Für die CA ist eine Anleitung enthalten, anhand derer Zertifikate für eingereichte Zertifikatsanträge ausgestellt werden können.
|
||||
\todo{Improve this section}
|
||||
|
||||
|
||||
\chapter{Einrichtung der CA}
|
||||
Bevor durch die CA Zertifikate ausgestellt werden könnnen, muss sie erst einmal aufgebaut werden.
|
||||
Dies geschieht auf Basis von EasyRSA, welches von den OpenVPN-Entwicklern zur Verfügung gestellt wird.
|
||||
|
||||
|
||||
|
||||
\section{Beschaffen von EasyRSA3}
|
||||
Aktuelle Releases sind unter \url{https://github.com/OpenVPN/easy-rsa/releases} zu finden.
|
||||
GPG-Schlüssel zur Authentisierung der Releases sind im easy-rsa Repository unterhalb von \texttt{./release-keys/README.md} aufgeführt.
|
||||
\url{https://github.com/OpenVPN/easy-rsa/tree/master/release-keys}
|
||||
Aktuelle Versionen von EasyRSA sind unter \url{https://github.com/OpenVPN/easy-rsa/releases} zu finden.
|
||||
Neben den auf \texttt{github.com} 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/master/release-keys}} passende GPG-Schlüssel aufgeführt.
|
||||
|
||||
\begin{lstlisting}
|
||||
# Aktuelles Release v3.0.4 beschaffen und den dazu passenden GPG-Key
|
||||
# Aktuelles Release v3.0.4 beschaffen
|
||||
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
|
||||
|
||||
# Aktuell gültige(n) GPG-Schlüssel für die Signaturprüfung beschaffen
|
||||
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
|
||||
|
||||
# Signatur der heruntergeladenen Datei überprüfen
|
||||
gpg --verify EasyRSA-3.0.4.tgz.sig EasyRSA-3.0.4.tgz
|
||||
\end{lstlisting}
|
||||
|
||||
Nach der erfolgreichen Authentisierung des heruntergeladenen Archivs kann dieses nun entpackt und verwendet werden.
|
||||
\begin{lstlisting}
|
||||
tar xzf EasyRSA-3.0.4.tgz
|
||||
cd EasyRSA-3.0.4
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
|
||||
\section{Konfiguration der CA}
|
||||
|
||||
Im nächsten Schritt wird auf Basis der Datei \texttt{vars.example} die Konfigurationsdatei \texttt{vars} erzeugt und anschließend bearbeitet.
|
||||
\begin{lstlisting}
|
||||
# Vorgeschlagene Einstellungen, die in der vars-Datei getätigt werden sollten.
|
||||
cp vars.example vars
|
||||
vim vars
|
||||
\end{lstlisting}
|
||||
|
||||
Folgende Einstellungen werden angepasst:
|
||||
\begin{lstlisting}
|
||||
# Die volle Organisationsstruktur in Zertifikate aufnehmen
|
||||
set_var EASYRSA_DN "org"
|
||||
|
||||
# Standardwerte für alle Zertifikatsanträge
|
||||
set_var EASYRSA_REQ_COUNTRY "DE"
|
||||
set_var EASYRSA_REQ_PROVINCE "Niedersachsen"
|
||||
set_var EASYRSA_REQ_CITY "Hannover"
|
||||
set_var EASYRSA_REQ_ORG "Hochschule Hannover"
|
||||
set_var EASYRSA_REQ_EMAIL "F4-I-IT-Team@hs-hannover.de"
|
||||
set_var EASYRSA_REQ_OU "Abteilung Informatik"
|
||||
set_var EASYRSA_REQ_OU "Abteilung Informatik"
|
||||
|
||||
# Alle Zertifikate sollen den RSA-Algorithmus mit 4096 Bit Schlüssellänge verwenden
|
||||
set_var EASYRSA_KEY_SIZE 4096
|
||||
set_var EASYRSA_ALGO rsa
|
||||
|
||||
# Das Wurzelzertifikat soll etwa 10 Jahre gültig sein
|
||||
set_var EASYRSA_CA_EXPIRE 3650
|
||||
|
||||
# Ausgestellte Zertifikate sollen standardmäßig etwa ein halbes Jahr gültig sein
|
||||
set_var EASYRSA_CERT_EXPIRE 180
|
||||
|
||||
# Eine erzeugte CRL soll etwa ein halbes Jahr gültig sein
|
||||
set_var EASYRSA_CRL_DAYS 180
|
||||
\end{lstlisting}
|
||||
|
||||
\begin{lstlisting}
|
||||
cp vars.example vars
|
||||
vim vars
|
||||
# Konfiguration der CA anpassen:
|
||||
\end{lstlisting}
|
||||
Sind alle Änderungen durchgeführt worden, ist die Konfiguration der CA damit vollständig abgeschlossen.
|
||||
|
||||
|
||||
\section{Initialisierung der CA}
|
||||
|
||||
Als nächstes muss die Verzeichnisstruktur der CA initialisiert werden und das Wurzelzertifikat erzeugt werden.
|
||||
|
||||
\begin{lstlisting}
|
||||
# Verzeichnisstruktur erzeugen (löscht bereits existierende Struktur!)
|
||||
# Verzeichnisstruktur initialisieren
|
||||
./easyrsa init-pki
|
||||
|
||||
# CA-Zertifikat erzeugen, Passwort für privaten Schlüssel wird verlangt
|
||||
# CA-Zertifikat erzeugen
|
||||
./easyrsa build-ca
|
||||
\end{lstlisting}
|
||||
Besteht der begründete Wunsch, den privaten Schlüssel der CA \textbf{nicht} mit einem Passwort zu schützen, so kann das Argument \texttt{nopass} an den \texttt{build-ca}-Befehl angehängt werden.
|
||||
Sollte der private Schlüssel in die Hände eines Angreifers gelangen, so kann dieser beliebige Zertifikate durch die CA ausstellen.
|
||||
Der Schutz des privaten Schlüssels der CA durch ein Passwort wird aus diesem Grund ausdrücklich empfohlen!
|
||||
|
||||
|
||||
\section{Bereitstellung der Konfiguration für Benutzer}
|
||||
Die Datei \texttt{vars} wird benötigt.
|
||||
Zusätzlich wäre es für einige Benutzer ggf. hilfreich, die Windows- und Unix-Version konfiguriert zum Download anzubieten.
|
||||
\section{Bereitstellung der CA-Konfiguration für Benutzer}
|
||||
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.
|
||||
|
||||
Daher muss durch die CA mindestens diese Datei bereitgestellt werden.
|
||||
In dem Zug kann man auch gleich ein vorkonfiguriertes Paket mit EasyRSA bereitstellen.
|
||||
Als Basis wird jeweils das \texttt{*.zip}-Release empfohlen, da dieses für Windows-Benutzer notwendige Programme wie \texttt{awk} und \texttt{sed} bereits enthält.
|
||||
\begin{lstlisting}
|
||||
# Aktuelles Release v3.0.4 beschaffen
|
||||
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/ \
|
||||
EasyRSA-3.0.4.zip
|
||||
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/ \
|
||||
EasyRSA-3.0.4.zip.sig
|
||||
|
||||
# Aktuell gültige(n) GPG-Schlüssel für die Signaturprüfung beschaffen
|
||||
gpg --recv-keys 6F4056821152F03B6B24F2FCF8489F839D7367F3
|
||||
|
||||
# Signatur der heruntergeladenen Datei überprüfen
|
||||
gpg --verify EasyRSA-3.0.4.zip.sig EasyRSA-3.0.4.zip
|
||||
\end{lstlisting}
|
||||
|
||||
Anschließend kann die konfigurierte \texttt{vars}-Datei der CA zum ZIP-Archiv hinzugefügt werden und anschließend den Benutzern zur Verfügung gestellt werden.
|
||||
\begin{lstlisting}
|
||||
zip VPN-EasyRSA.zip /path/to/CA/vars
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
\chapter{Beantragen von Clientzertifikaten}
|
||||
|
|
Loading…
Reference in New Issue