Update to r44604:
Finish editorial review of OpenSSL chapter. Update instructions and examples.
This commit is contained in:
parent
3106194f99
commit
c1e779d430
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48899
1 changed files with 83 additions and 60 deletions
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue