Update CA-DOC according to latest review
This commit is contained in:
parent
d998e1e77c
commit
bcca0cebf0
|
@ -35,29 +35,29 @@ Für die Durchführung aller Schritte dieser Anleitung werden die folgenden Prog
|
||||||
\section{Installation der CA} \label{sct:install_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.5/release-keys}} passende GPG-Schlüssel aufgeführt.
|
||||||
Zum Zeitpunkt der Erstellung dieses Dokuments (13.09.2018) ist Version 3.0.4 aktuell - alle in diesem Dokument aufgeführten Befehle beziehen sich auf diese Version.
|
Zum Zeitpunkt der Erstellung dieses Dokuments (17.09.2018) ist Version 3.0.5 aktuell - alle in diesem Dokument aufgeführten Befehle beziehen sich auf diese Version.
|
||||||
Für die Verwendung dieser Dokumentation mit einer höheren Version von EasyRSA sind gegebenenfalls Anpassungen an diesem Dokument erforderlich.
|
Für die Verwendung dieser Dokumentation mit einer höheren Version von EasyRSA sind gegebenenfalls Anpassungen an diesem Dokument erforderlich.
|
||||||
|
|
||||||
Im ersten Schritt wird die aktuelle Version von EasyRSA beschafft und authentisiert.
|
Im ersten Schritt wird die aktuelle Version von EasyRSA beschafft und authentisiert.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
# Aktuelles Release v3.0.4 beschaffen
|
# Aktuelles Release v3.0.5 beschaffen
|
||||||
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/ \
|
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/ \
|
||||||
EasyRSA-3.0.4.tgz
|
EasyRSA-nix-3.0.5.tgz
|
||||||
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/ \
|
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/ \
|
||||||
EasyRSA-3.0.4.tgz.sig
|
EasyRSA-nix-3.0.5.tgz.sig
|
||||||
|
|
||||||
# Aktuell gültige(n) GPG-Schlüssel für die Signaturprüfung beschaffen
|
# Aktuell gültige(n) GPG-Schlüssel für die Signaturprüfung beschaffen
|
||||||
gpg --recv-keys 6F4056821152F03B6B24F2FCF8489F839D7367F3
|
gpg --recv-keys 6F4056821152F03B6B24F2FCF8489F839D7367F3
|
||||||
|
|
||||||
# Signatur der heruntergeladenen Datei überprüfen
|
# Signatur der heruntergeladenen Datei überprüfen
|
||||||
gpg --verify EasyRSA-3.0.4.tgz.sig EasyRSA-3.0.4.tgz
|
gpg --verify EasyRSA-nix-3.0.5.tgz.sig EasyRSA-nix-3.0.5.tgz
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Nach der erfolgreichen Authentisierung des heruntergeladenen Archivs kann dieses nun entpackt und verwendet werden.
|
Nach der erfolgreichen Authentisierung des heruntergeladenen Archivs kann dieses nun entpackt und verwendet werden.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
tar xzf EasyRSA-3.0.4.tgz
|
tar xzf EasyRSA-nix-3.0.5.tgz
|
||||||
cd EasyRSA-3.0.4
|
cd EasyRSA-3.0.5/
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ vim vars
|
||||||
|
|
||||||
In der so erzeugten Konfigurationsdatei werden nun die folgenden Einträge auskommentiert und entsprechend angepasst.
|
In der so erzeugten Konfigurationsdatei werden nun die folgenden Einträge auskommentiert und entsprechend angepasst.
|
||||||
|
|
||||||
Zertifikate sollen als \textit{Distinguished Name} (DN) das volle Organisationsschema enthalten.
|
Zertifikate verwenden das volle Organisationsschema als \textit{Distinguished Name} (DN).
|
||||||
Dadurch können Zertifikate bei Betrachtung leicht der Abteilung Informatik zugeordnet werden.
|
Dadurch können Zertifikate bei Betrachtung leicht der Abteilung Informatik zugeordnet werden.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
set_var EASYRSA_DN "org"
|
set_var EASYRSA_DN "org"
|
||||||
|
@ -86,20 +86,20 @@ set_var EASYRSA_REQ_ORG "Hochschule Hannover"
|
||||||
set_var EASYRSA_REQ_EMAIL "F4-I-IT-Team@hs-hannover.de"
|
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"
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Alle erzeugten Zertifikate sollen auf RSA-Schlüsselpaaren mit 4096 Bit Länge basieren.
|
Alle erzeugten Zertifikate basieren auf RSA-Schlüsselpaaren mit 4096 Bit Schlüssellänge.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
set_var EASYRSA_KEY_SIZE 4096
|
set_var EASYRSA_KEY_SIZE 4096
|
||||||
set_var EASYRSA_ALGO rsa
|
set_var EASYRSA_ALGO rsa
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Das Wurzelzertifikat der CA soll für 10 Jahre gültig sein.
|
Das Wurzelzertifikat der CA ist für 20 Jahre gültig.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
set_var EASYRSA_CA_EXPIRE 3650
|
set_var EASYRSA_CA_EXPIRE 7300
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Ausgestellte Zertifikate sollen ein halbes Jahr lang gültig sein.
|
Ausgestellte Zertifikate sind für fünf Jahre gültig\footnote{Dieser Standardwert wird für Zertifikate für Mitarbeiter und Server angewandt. Für Studenten ist eine maximale Laufzeit von 730 Tage (zwei Jahren) festgelegt.}.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
set_var EASYRSA_CERT_EXPIRE 180
|
set_var EASYRSA_CERT_EXPIRE 1825
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Die von der CA erzeugte \textit{Certificate Revocation List} (CRL) soll ein halbes Jahr lang gültig sein.
|
Die von der CA erzeugte \textit{Certificate Revocation List} (CRL) ist ein halbes Jahr lang gültig.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
set_var EASYRSA_CRL_DAYS 180
|
set_var EASYRSA_CRL_DAYS 180
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
@ -136,14 +136,14 @@ Als Basis wird jeweils das \texttt{*.zip}-Release der aktuellen Version von Easy
|
||||||
|
|
||||||
Zunächst wird das aktuelle \texttt{*.zip}-Release von EasyRSA beschafft und authentisiert.
|
Zunächst wird das aktuelle \texttt{*.zip}-Release von EasyRSA beschafft und authentisiert.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/ \
|
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/ \
|
||||||
EasyRSA-3.0.4.zip
|
EasyRSA-Windows-3.0.5.zip
|
||||||
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/ \
|
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.5/ \
|
||||||
EasyRSA-3.0.4.zip.sig
|
EasyRSA-Windows-3.0.5.zip.sig
|
||||||
|
|
||||||
gpg --recv-keys 6F4056821152F03B6B24F2FCF8489F839D7367F3
|
gpg --recv-keys 6F4056821152F03B6B24F2FCF8489F839D7367F3
|
||||||
|
|
||||||
gpg --verify EasyRSA-3.0.4.zip.sig EasyRSA-3.0.4.zip
|
gpg --verify EasyRSA-Windows-3.0.5.zip.sig EasyRSA-Windows-3.0.5.zip
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Nun kann die konfigurierte \texttt{vars}-Datei der CA zu dem beschafften \texttt{*.zip}-Archiv hinzugefügt werden.
|
Nun kann die konfigurierte \texttt{vars}-Datei der CA zu dem beschafften \texttt{*.zip}-Archiv hinzugefügt werden.
|
||||||
|
@ -152,14 +152,14 @@ Nun kann die konfigurierte \texttt{vars}-Datei der CA zu dem beschafften \texttt
|
||||||
TD=`mktemp -d`
|
TD=`mktemp -d`
|
||||||
|
|
||||||
# EasyRSA in temporäres Verzeichnis entpacken
|
# EasyRSA in temporäres Verzeichnis entpacken
|
||||||
unzip EasyRSA-3.0.4.zip -d $TD
|
unzip EasyRSA-Windows-3.0.5.zip -d $TD
|
||||||
|
|
||||||
# Vars-Datei hinzufügen
|
# Vars-Datei hinzufügen
|
||||||
cp /path/to/CA/vars $TD/EasyRSA-3.0.4/
|
cp /path/to/CA/vars $TD/EasyRSA-3.0.5/
|
||||||
|
|
||||||
# Ergebnis in neue Zip-Datei einpacken
|
# Ergebnis in neue Zip-Datei einpacken
|
||||||
cd $TD
|
cd $TD
|
||||||
zip -r VPN-EasyRSA.zip EasyRSA-3.0.4
|
zip -r VPN-EasyRSA.zip EasyRSA-3.0.5
|
||||||
|
|
||||||
# Neue Zip-Datei an sicheren Ort verschieben
|
# Neue Zip-Datei an sicheren Ort verschieben
|
||||||
cd -
|
cd -
|
||||||
|
@ -192,11 +192,17 @@ Im nächsten Schritt wird ein neuer Zertifikatsantrag inklusive neuem Schlüssel
|
||||||
./easyrsa gen-req entityName
|
./easyrsa gen-req entityName
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Für die Beantragung eines \textbf{Clientzertifikats} muss der Platzhalter \texttt{entityName} durch den hochschulweit gültigen Benutzernamen des Benutzers ersetzt werden.
|
Für die Beantragung eines \textbf{Clientzertifikats} muss der Platzhalter \texttt{entityName} durch den E-Mailadresse des Benutzers an der Hochschule Hannover ersetzt werden.
|
||||||
|
|
||||||
Für die Beantragung eines \textbf{Serverzertifikats} muss der Platzhalter \texttt{entityName} durch dessen vollqualifizierten Domainnamen des Servers ersetzt werden.
|
Für die Beantragung eines \textbf{Serverzertifikats} muss der Platzhalter \texttt{entityName} durch dessen vollqualifizierten Domainnamen des Servers ersetzt werden.
|
||||||
Dieser kann beispielsweise \texttt{aither.inform.hs-hannover.de} lauten.
|
Dieser kann beispielsweise \texttt{aither.inform.hs-hannover.de} lauten.
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
Im Rahmen der Erzeugung des Zertifikatsantrags werden zusätzliche Angaben abgefragt.
|
||||||
|
Im Feld \texttt{Common Name} muss der volle Name des Antragsstellers (Clientzertifikat) oder der vollqualifizierte Domainname des Servers (Serverzertifikat) angegeben werden.
|
||||||
|
Im Feld \texttt{Email Address} muss die Hochschul-E-Mail-Adresse des Antragsstellers angegeben werden.
|
||||||
|
Alle weiteren Vorgaben werden unverändert übernommen.
|
||||||
|
|
||||||
\textbf{Hinweis 1}: Besteht der begründete Wunsch, den erzeugten, privaten Schlüssel \textbf{nicht} mit einem Passwort zu schützen, so kann das Argument \texttt{nopass} an den Befehl \texttt{gen-req} angehängt werden.
|
\textbf{Hinweis 1}: Besteht der begründete Wunsch, den erzeugten, privaten Schlüssel \textbf{nicht} mit einem Passwort zu schützen, so kann das Argument \texttt{nopass} an den Befehl \texttt{gen-req} angehängt werden.
|
||||||
Dies kann nützlich sein um den privaten Schlüssel ohne zusätzliche Passworteingabe zu benutzen - zum Beispiel zum Betrieb eines OpenVPN-Servers oder zum automatischen Verbindungsaufbau mit einem OpenVPN-Client.
|
Dies kann nützlich sein um den privaten Schlüssel ohne zusätzliche Passworteingabe zu benutzen - zum Beispiel zum Betrieb eines OpenVPN-Servers oder zum automatischen Verbindungsaufbau mit einem OpenVPN-Client.
|
||||||
Sollte der private Schlüssel in die Hände eines Angreifers gelangen, so kann dieser ebenfalls das dazugehörige Zertifikat missbrauchen.
|
Sollte der private Schlüssel in die Hände eines Angreifers gelangen, so kann dieser ebenfalls das dazugehörige Zertifikat missbrauchen.
|
||||||
|
@ -205,9 +211,6 @@ Ein Passwortschutz wird ausdrücklich empfohlen sofern keine sonstigen Maßnahme
|
||||||
\textbf{Hinweis 2}: Wurde zuvor bereits ein Zertifikatsantrag mit dem selben \texttt{entityName} erzeugt worden sein, so kann dieser inklusive dem dazugehörigen privaten Schlüssel \textbf{überschrieben} werden.
|
\textbf{Hinweis 2}: Wurde zuvor bereits ein Zertifikatsantrag mit dem selben \texttt{entityName} erzeugt worden sein, so kann dieser inklusive dem dazugehörigen privaten Schlüssel \textbf{überschrieben} werden.
|
||||||
Dafür ist die Bestätigung der Sicherheitsabfrage durch die Eingabe von \texttt{yes} erforderlich.
|
Dafür ist die Bestätigung der Sicherheitsabfrage durch die Eingabe von \texttt{yes} erforderlich.
|
||||||
|
|
||||||
\textbf{Hinweis 3}: Im Rahmen der Erzeugung des Zertifikatsantrags werden zusätzliche Angaben abgefragt.
|
|
||||||
Hier sind keine Änderungen notwendig, alle Vorgaben werden unverändert übernommen.
|
|
||||||
|
|
||||||
In diesem Schritt wurden nun zwei neue Dateien erzeugt:
|
In diesem Schritt wurden nun zwei neue Dateien erzeugt:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \texttt{*.key}: Der private Schlüssel. Nur mit ihm kann das später ausgestellte Zertifikat benutzt werden. Diese Datei sollte immer an einem sicheren Ort gespeichert werden, um Missbrauch durch Dritte zu verhindern. Bei Verlust dieser Datei wird das dazugehörige Zertifikat \textbf{unbrauchbar}! Aus diesem Grund wird die Durchführung von Backups empfohlen.
|
\item \texttt{*.key}: Der private Schlüssel. Nur mit ihm kann das später ausgestellte Zertifikat benutzt werden. Diese Datei sollte immer an einem sicheren Ort gespeichert werden, um Missbrauch durch Dritte zu verhindern. Bei Verlust dieser Datei wird das dazugehörige Zertifikat \textbf{unbrauchbar}! Aus diesem Grund wird die Durchführung von Backups empfohlen.
|
||||||
|
@ -225,7 +228,7 @@ Dafür wird der Befehl \texttt{import-req} verwendet:
|
||||||
Abhängig vom Typ des beantragten Zertifikats muss der Platzhalter \texttt{entityName} durch die CA-Betreiber gewählt werden.
|
Abhängig vom Typ des beantragten Zertifikats muss der Platzhalter \texttt{entityName} durch die CA-Betreiber gewählt werden.
|
||||||
Der \texttt{entityName} wird auch zum Widerrufen bereits ausgestellter Zertifikate verwendet.
|
Der \texttt{entityName} wird auch zum Widerrufen bereits ausgestellter Zertifikate verwendet.
|
||||||
|
|
||||||
Für die Beantragung eines \textbf{Clientzertifikats} muss der Platzhalter \texttt{entityName} durch den Benutzernamen des Benutzers ersetzt werden, der das Zertifikat beantragt.
|
Für die Beantragung eines \textbf{Clientzertifikats} muss der Platzhalter \texttt{entityName} durch die E-Mail-Adresse des Benutzers an der Hochschule Hannover ersetzt werden, der das Zertifikat beantragt.
|
||||||
|
|
||||||
Für die Beantragung eines \textbf{Serverzertifikats} muss der Platzhalter \texttt{entityName} durch den vollqualifizierten Domainnamen des Servers ersetzt werden, für den das Zertifikat beantragt wird.
|
Für die Beantragung eines \textbf{Serverzertifikats} muss der Platzhalter \texttt{entityName} durch den vollqualifizierten Domainnamen des Servers ersetzt werden, für den das Zertifikat beantragt wird.
|
||||||
Dieser kann zum Beispiel \texttt{aither.inform.hs-hannover.de} lauten.
|
Dieser kann zum Beispiel \texttt{aither.inform.hs-hannover.de} lauten.
|
||||||
|
@ -238,7 +241,10 @@ Ist der private Schlüssel der CA mit einem Passwort geschützt, so wird bei die
|
||||||
|
|
||||||
Nun kann der importierte Zertifikatsantrag als Client- oder Serverzertifikat signiert werden.
|
Nun kann der importierte Zertifikatsantrag als Client- oder Serverzertifikat signiert werden.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
# Clientzertifikat ausstellen
|
# Clientzertifikat für Studenten ausstellen
|
||||||
|
EASYRSA_CERT_EXPIRE=730 ./easyrsa sign-req client entityName
|
||||||
|
|
||||||
|
# Clientzertifikat für Mitarbeiter ausstellen
|
||||||
./easyrsa sign-req client entityName
|
./easyrsa sign-req client entityName
|
||||||
|
|
||||||
# Serverzertifikat ausstellen
|
# Serverzertifikat ausstellen
|
||||||
|
@ -246,9 +252,8 @@ Nun kann der importierte Zertifikatsantrag als Client- oder Serverzertifikat sig
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Ist der private Schlüssel der CA mit einem Passwort geschützt, so wird bei diesem Schritt danach verlangt.
|
Ist der private Schlüssel der CA mit einem Passwort geschützt, so wird bei diesem Schritt danach verlangt.
|
||||||
|
|
||||||
\textbf{Hinweis}: Die Gültigkeitsdauer kann nach Ermessen der CA-Betreiber in begründeten Einzelfällen über den vorgegebenen Standardwert hinaus gewählt werden, indem die Umgebungsvariable \texttt{EASYRSA\_CERT\_EXPIRE} auf die gewünschte Gültigkeitsdauer in Tagen gesetzt wird.
|
\textbf{Hinweis}: Die Gültigkeitsdauer kann nach Ermessen der CA-Betreiber in begründeten Einzelfällen frei gewählt werden, indem die Umgebungsvariable \texttt{EASYRSA\_CERT\_EXPIRE} auf die gewünschte Gültigkeitsdauer in Tagen gesetzt wird.
|
||||||
Insbesondere bei der Ausstellung von Serverzertifikaten ist dieser Schritt sinnvoll.
|
Bei der Wahl einer erhöhten Gültigkeitsdauer wird empfohlen, eine maximale Gültigkeitsdauer von 1825 Tagen (fünf Jahre) nicht zu überschreiten.
|
||||||
Bei der Wahl einer erhöhten Gültigkeitsdauer wird empfohlen, eine maximale Gültigkeitsdauer von 730 Tagen (etwa 2 Jahren) nicht zu überschreiten.
|
|
||||||
In diesem Beispiel wird ein Serverzertifikat mit einer Laufzeit von 730 Tagen ausgestellt.
|
In diesem Beispiel wird ein Serverzertifikat mit einer Laufzeit von 730 Tagen ausgestellt.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
EASYRSA_CERT_EXPIRE=730 ./easyrsa sign-req server entityName
|
EASYRSA_CERT_EXPIRE=730 ./easyrsa sign-req server entityName
|
||||||
|
|
Loading…
Reference in New Issue