PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tls/ssl certificate cyrus-imap und postfix



zini2001
27.12.04, 19:39
Hallo!!
Für meinen SuSE9.1 Server würd ich mir gerne Zertifikate mit OpenSSL erstellen, damit die Passwortabfrage vom Client zum Server Verschlüsselt wird, und nicht im klartext übers Netz geht.

Auf dem Rechner läuft Postfix_cyrus-imapd_cyrus-sasl_Apache_squirrel...
Nun hab ich mehrere Anleitungen zuhand (2./4.)und (1./3.) sind gleich.
Jedoch besitzen unterschiedliche Verfahrensweisen.

1.http://linux-universe.com/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/cyrus-config.html
2.c't 2004/Heft8
3.Linux-Magazin 12/04
4./usr/shar/doc/packages/openssl-doc/HOWTO

1.und 3.:
openssl req -new -nodes -out req.pem -keyout key.pem
openssl rsa -in key.pem -out new.key.pem
openssl x509 -in req.pem -out ca-cert -req -signkey new.key.pem -days 999

dann folgt noch wie man die Zugrifsrechte setzt und z.B. /var/imap kopiert, der /etc/imapd.conf mitteilt wo die Dateien zufinden sind.
Die Beschreibung jedoch wird nur für cyrus-imapd gemacht.

2.und 4.
openssl genrsa -output smtpd.key 2048
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 1095 -in smtpd.csr -out smtpd.crt -signkey
smtp.key

dann folgt noch wie man die Zugrifsrechte setzt und z.B. /etc/postfix/ssl kopiert, der main.cf mitteilt wo die Dateien zufinden sind.
Die Beschreibung jedoch wird nur für postfix gemacht.

Jetzt bin ich mir nicht ganz sicher welches Verfahren ich anwenden soll.:confused:
Schön wäre es wenn es ein Zertifikat geben würde von dem aus alle Dienste bedient werden(apache, samba, postfix, ldap, cyrus, ....). Das hab ich mal auf einem SuSE-Standard-Server gesehen. Ist die überhaupt mit einem dieser Verfahren möglich oder sogar beiden??
würd mich freuen wenn jemand ahnung hat und mir einen tip geben könnte!!
gruß

RapidMax
28.12.04, 22:06
Schön wäre es wenn es ein Zertifikat geben würde von dem aus alle Dienste bedient werden(apache, samba, postfix, ldap, cyrus, ....).

Wieviel sagt das Publik-Key-Verfahren? Zuerst schau dir mal das leicht abgeänderte Verfahren an:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out request.pem
openssl x509 -req -days 1001 -in request.pem -out selfsigncert.pem -signkey key.pem

Der erste Befehl erzeugt ein RSA-Key-Paar (Public und Private Key) das nicht verschlüsselt ist [1] (verschlüsseln z.B. mit -3des). key.pem enthält sowohl den Private- als auch den Public-Key [2].

Der zweite Befehl erzeugt eine Zertifikats-Anfrage mit den eingegebenen Daten für den vorher erzeugten Schlüssel (key.pem). Mit dem Public-Key und und dem Request könntest du jetzt zu einer CA gehen und dir den Schlüssel unterschreiben lassen.[3]

Stattdessen unterschreibst du mit dem dritten Befehl den Schlüssel selber und erzeugst ein sogenanntes X.509 Zertifikat. Da das Zertifikat selbst signiert ist, muss du das Zertifikat bei deinen Clients als vertrauenswürdiges Zertifikat markieren, indem du den Fingerprint überprüfst.

Damit sollte es auch soweit klar sein: Das erzeugte Zertifikat und den dazugehörigen, privaten Schlüssel kannst du selbstverständlich für alle Server verwenden.

Für eine Hierarchische CA-Struktur empfehle ich ein Werkzeug wie z.B. TinyCA (http://tinyca.sm-zone.net/).

[1] Da der private Schlüsseln unverschlüsselt auf der Platte liegt, könnte ein Eindringling den Schlüssel kopieren. Damit kann er sich als dein Server ausgeben. Deshalb wird der Schlüssel mit einem Symmetrischen Verfahren verschlüsselt abgelegt. Allerdings können dann die Server nicht mehr automatisch gestartet werden. Abhilfe würde z.B. eine CA-Hierarchie schaffen, mit kurzlebigen Zertifikaten, oder das Auslagern des Schlüssel auf eine Smartcard.
[2]Um den öffentlichen Schlüssel aus key.pem zu extrahieren kann der folgende Befehl verwendet werden:

openssl rsa -in key.pem -pubout -out public.pem
[3]Ich empfehle folgenden Distinguished Name:
CN=dein.server.de, O=Firma, C=DE
(keine E-Mailaddresse und keine allzu detailierten Felder (OU, ST etc.))

Literatur: http://www.dfn-pca.de/certify/ssl/handbuch/