Update to r44604:

Finish editorial review of OpenSSL chapter.
Update instructions and examples.
This commit is contained in:
Bjoern Heidotting 2016-06-05 15:47:50 +00:00
parent 3106194f99
commit c1e779d430
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48899

View file

@ -5,7 +5,7 @@
$FreeBSD$ $FreeBSD$
$FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $ $FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $
basiert auf: r44600 basiert auf: r44604
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security"> <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
<info><title>Sicherheit</title> <info><title>Sicherheit</title>
@ -1989,8 +1989,17 @@ kadmind5_server_enable="YES"</programlisting>
<secondary>Zertifikate erzeugen</secondary> <secondary>Zertifikate erzeugen</secondary>
</indexterm> </indexterm>
<para>Ein Zertifikat erzeugen Sie mit dem nachstehenden <para>Um ein Zertifikat zu erzeugen, das von einer externen
Kommando:</para> <acronym>CA</acronym> signiert werden soll, geben Sie
folgenden Befehl und die angeforderten Informationen
ein. Diese Informationen werden in das Zertifikat
geschrieben. Für <literal>Common Name</literal> geben Sie
den vollqualifizierten Namen des Systems ein, auf dem das
Zertifikat später installiert wird. Wenn der Name nicht
übereinstimmt, wird die Anwendung, die das Zertifikat
überprüft, dem Benuzter eine Warnung anzeigen. Die
Überprüfung würde fehlschlagen und das Zertifikat damit
unbrauchbar machen.</para>
<screen>&prompt.root; <userinput>openssl req -new -nodes -out req.pem -keyout cert.pem</userinput> <screen>&prompt.root; <userinput>openssl req -new -nodes -out req.pem -keyout cert.pem</userinput>
Generating a 1024 bit RSA private key Generating a 1024 bit RSA private key
@ -2018,52 +2027,66 @@ to be sent with your certificate request
A challenge password []: A challenge password []:
An optional company name []:<userinput><replaceable>Another Name</replaceable></userinput></screen> An optional company name []:<userinput><replaceable>Another Name</replaceable></userinput></screen>
<para>Beachten Sie, dass die Eingabe bei <para>Bei der Erzeugung des Zertifikates können noch weitere
<quote>Common Name</quote> ein gültiger Domain-Name Optionen, wie die Gültigkeitsdauer
sein muss. Eine andere Eingabe erzeugt ein unbrauchbares und alternative Verschlüsselungsalgorithmen, angegeben
Zertifikat. Das Zertifikat kann mit einer werden. &man.openssl.1; beschreibt die zur
Gültigkeitsdauer und anderen
Verschlüsselungsalgorithmen erzeugt werden.
&man.openssl.1; beschreibt die zur
Verfügung stehenden Optionen.</para> Verfügung stehenden Optionen.</para>
<para>Das Verzeichnis, in dem Sie den letzten Befehl ausgeführt <para>Das folgende Kommando erstellt zwei Dateien im aktuellen
haben, enthält nun zwei Dateien: Die Anforderung für Verzeichnis: Die Anforderung für ein neues Zertifikat wird in
ein neues Zertifikat wurde in <filename>req.pem</filename> <filename>req.pem</filename> gespeichert. Diese Datei können
gespeichert. Diese Datei können Sie an eine Sie an eine <acronym>CA</acronym> senden, wo die Angaben
<acronym>CA</acronym> senden, wo die Angaben geprüft werden. geprüft werden. Nach erfolgreicher Prüfung wird das
Nach erfolgreicher Prüfung wird das Zertifikat unterschrieben Zertifikat signiert und an Sie zurückgesandt.
und an Sie zurückgesandt. Die zweite Datei, <filename>cert.pem</filename>, <filename>cert.pem</filename>, enthält den privaten Schlüssel
enthält den privaten Schlüssel für das Zertifikat für das Zertifikat und darf auch keine Fall in fremde Hände
und darf auch keine Fall in fremde Hände geraten, da ein geraten, da ein Angreifer sonst in der Lage ist, anderen
Angreifer sonst in der Lage ist, anderen Personen oder Rechnern Personen oder Rechnern vorzugaukeln, dass es sich bei ihm um
vorzugaukeln, dass es sich bei ihm um Sie handelt.</para> Sie handelt.</para>
<para>Wenn Sie keine Signatur einer Zertifizierungsstelle <para>Wenn Sie keine Signatur einer Zertifizierungsstelle
benötigen, können Sie ein selbst-signiertes benötigen, können Sie ein selbst signiertes
Zertifikat erstellen. Erzeugen Sie dazu zuerst einen Zertifikat erstellen. Erzeugen Sie dazu zuerst einen
<acronym>RSA</acronym>-Schlüssel:</para> <acronym>RSA</acronym>-Schlüssel:</para>
<screen>&prompt.root; <userinput>openssl dsaparam -rand -genkey -out myRSA.key 1024</userinput></screen> <screen>&prompt.root; <userinput>openssl genrsa -rand -genkey -out cert.key 2048</userinput>
0 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
.............................................+++
.................................................................................................................+++
e is 65537 (0x10001)</screen>
<para>Erzeugen Sie dann den <acronym>CA</acronym>-Schlüssel:</para> <para>Benutzen Sie diesen Schlüssel, um ein selbst signiertes
Zertifikat zu erzeugen. Folgen Sie wieder den Anweisungen am
Prompt:</para>
<screen>&prompt.root; <userinput>openssl gendsa -des3 -out myca.key myRSA.key</userinput></screen> <screen>&prompt.root; <userinput>openssl req -new -x509 -days 365 -key cert.key -out cert.crt -sha256</userinput>
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:<userinput><replaceable>US</replaceable></userinput>
State or Province Name (full name) [Some-State]:<userinput><replaceable>PA</replaceable></userinput>
Locality Name (eg, city) []:<userinput><replaceable>Pittsburgh</replaceable></userinput>
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput><replaceable>My Company</replaceable></userinput>
Organizational Unit Name (eg, section) []:<userinput><replaceable>Systems Administrator</replaceable></userinput>
Common Name (e.g. server FQDN or YOUR name) []:<userinput><replaceable>localhost.example.org</replaceable></userinput>
Email Address []:<userinput><replaceable>trhodes@FreeBSD.org</replaceable></userinput></screen>
<para>Erstellen Sie mit diesem Schlüssel das <para>Dieses Kommando erstellt zwei neue Dateien im aktuellen
Zertifikat:</para> Verzeichnis: Der Schlüssel der Zertifizierungsstelle
<screen>&prompt.root; <userinput>openssl req -new -x509 -days 365 -key myca.key -out new.crt</userinput></screen>
<para>Zwei neue Dateien befinden sich nun im Verzeichnis:
Der Schlüssel der Zertifizierungsstelle
<filename>myca.key</filename> und das Zertifikat selbst, <filename>myca.key</filename> und das Zertifikat selbst,
<filename>new.crt</filename>. Sie sollten in einem <filename>new.crt</filename>. Sie sollten in einem
Verzeichnis, vorzugsweise unterhalb von Verzeichnis, vorzugsweise unterhalb von
<filename>/etc/ssl</filename> abgelegt <filename>/etc/ssl/</filename> abgelegt werden, das nur von
werden, das nur von <systemitem class="username">root</systemitem> lesbar <systemitem class="username">root</systemitem> lesbar
ist. Die Zugriffsrechte der Dateien können mit &man.chmod.1; ist. Die Zugriffsrechte der Dateien können mit
auf <literal>0700</literal> gesetzt werden.</para> <command>chmod</command> auf <literal>0700</literal> gesetzt
werden.</para>
</sect2> </sect2>
<sect2> <sect2>
@ -2081,37 +2104,37 @@ An optional company name []:<userinput><replaceable>Another Name</replaceable></
in der Dokumentation der entsprechenden Software.</para> in der Dokumentation der entsprechenden Software.</para>
</note> </note>
<para>Ergänzen Sie die Konfigurationsdatei von <para>Um <application>Sendmail</application> zu konfigurieren,
<application>Sendmail</application> (<filename>.mc</filename>) fügen Sie die folgenden Zeilen in
um die nachstehenden Zeilen:</para> <filename>/etc/rc.conf</filename> ein:</para>
<programlisting>dnl SSL Options <programlisting>sendmail_enable="YES"
define(`confCACERT_PATH',`/etc/certs')dnl sendmail_cert_enable="YES"
define(`confCACERT',`/etc/certs/new.crt')dnl sendmail_cert_cn="<replaceable>localhost.example.org</replaceable>"</programlisting>
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl</programlisting>
<para>Im Verzeichnis <filename>/etc/certs</filename> befindet <para>Dadurch wird automatisch ein selbst signiertes Zertifikat
sich der Schlüssel und das Zertifikat. Bauen Sie danach im (<filename>/etc/mail/certs/host.cert</filename>), der
Verzeichnis <filename>/etc/mail</filename> Schlüssel für die <acronym>CA</acronym>
mit dem Kommando <command>make install</command> die (<filename>/etc/mail/certs/host.key</filename> und das
<filename>.cf</filename>-Datei. Starten Sie anschließend Zertifikat der <acronym>CA</acronym>
<application>Sendmail</application> mit (<filename>/etc/mail/certs/cacert.pem</filename> erzeugt. Das
<command>make restart</command> neu.</para> Zertifikat wird den in <option>sendmail_cert_cn</option>
festgelegten <literal>Common Name</literal> verwenden.
Nachdem Sie die Änderungen gespeichert haben, starten Sie
<application>Sendmail</application> neu:</para>
<screen>&prompt.root; <userinput>service sendmail restart</userinput></screen>
<para>Wenn alles gut ging, erscheinen keine Fehlermeldungen <para>Wenn alles gut ging, erscheinen keine Fehlermeldungen
in <filename>/var/log/maillog</filename> und in <filename>/var/log/maillog</filename>. Für einen einfachen
Sie sehen <application>Sendmail</application> in der Test, bauen Sie mit Hilfe von <command>telnet</command> eine
Prozessliste.</para> Verbindung zum Mailserver auf:</para>
<para>Testen Sie nun den Mailserver mit &man.telnet.1;:</para>
<screen>&prompt.root; <userinput>telnet <replaceable>example.com</replaceable> 25</userinput> <screen>&prompt.root; <userinput>telnet <replaceable>example.com</replaceable> 25</userinput>
Trying 192.0.34.166... Trying 192.0.34.166...
Connected to <systemitem class="fqdomainname">example.com</systemitem>. Connected to example.com.
Escape character is '^]'. Escape character is '^]'.
220 <systemitem class="fqdomainname">example.com</systemitem> ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT) 220 example.com ESMTP Sendmail 8.14.7/8.14.7; Fri, 18 Apr 2014 11:50:32 -0400 (EDT)
<userinput>ehlo <replaceable>example.com</replaceable></userinput> <userinput>ehlo <replaceable>example.com</replaceable></userinput>
250-example.com Hello example.com [192.0.34.166], pleased to meet you 250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES 250-ENHANCEDSTATUSCODES
@ -2125,7 +2148,7 @@ Escape character is '^]'.
250-DELIVERBY 250-DELIVERBY
250 HELP 250 HELP
<userinput>quit</userinput> <userinput>quit</userinput>
221 2.0.0 <systemitem class="fqdomainname">example.com</systemitem> closing connection 221 2.0.0 example.com closing connection
Connection closed by foreign host.</screen> Connection closed by foreign host.</screen>
<para>Wenn die Zeile <literal>STARTTLS</literal> <para>Wenn die Zeile <literal>STARTTLS</literal>