AW: CA/SSL/Apache/IMAPD/POP3s - Hat jemand eine gute Howto? (SuSE9.1)
Hallo Leute,
wenn es nur um einzelene Zertifikate geht, erstelle ich sie mit openssl selber.
Dazu muß eigentlich nur das openssl-packet installiert sein.
mkdir /home/user/cert
cp /usr/share/ssl/misc/CA.pl /home/user/cert <-- SuSE Script zum vereinfachten herstellen von Zertifikaten
cd /home/user/cert
./CA.pl -newca
Dateiname kann mit Enter übergangen werden.
Weitere Angaben entsprechend ausfüllen.
Damit ist die RootCA erstellt.
mkdir /home/usr/cert/apache
openssl genrsa -out apache/server.key 1024
Zertifikat wird nicht verschlüßelt, damit beim Rechner-start keine passprass eingegeben werden muß!
wenn mit verschlüsselung gewünscht, lautet Befehl: openssl genrsa des3 -out apache/server.key 1024
openssl req -new -key apache/server.key -out newreq.pem
Felder entsprechen ausüllen wie root-ca - AUßER der common-name.
Dort muß der Rechnername stehen, wie er später im Browser aufgerufen wird.
Die Extra-Attribute kann man mit Enter übergehen.
./CA.pl -sign
Eingabe der Passprass der root-ca und 2x bestätigen.
cp newcert.pem apache/server.crt
cp apache/server.crt /etc/apache2/ssl.crt
cp apache/server.key /etc/apache2/ssl.key
Editieren der Datei /etc/sysconfig/apache2:
hinter dem Parameter 'APACHE-MODULES' sollte 'SSL' stehen, ansonsten mit Leerzeichen einfügen.
hinter dem Parameter 'APACHE-SERVER-FLAGS folgendes einfügen '-D SSL'
cp /etc/apache2/vhosts.d/vhost-ssl.template /etc/apache2/vhosts.d/ssl.conf
Datei ssl.conf editieren und Verzeichnisse anpassen.
Am Ende vor </VirtualHost> folgendes einfügen
on 30.10.2005 20:39 Christian Boltz said the following: [...]
Falls _nur_ "perl = 5.8.6" angemeckert wird, müsste es mit etwas Glück funktionieren. Du brauchst (ausnahmsweise!) --nodeps und anschließend einen Symlink /usr/lib/perl5/vendor_perl/5.8.3/i586-linux-thread-multi/Gtk2 -> /usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/Gtk2
Habe ich gemacht. hat auch funktioniert.
allerdings, wenn ich jetzt tinyca2 starte kommt:
Can't locate Glib.pm in @INC [...]
[...] kann ich einfach die gesamten Perl 5.8.6 pakete aus der 9.3 dazuinstallieren?
Oder hast du noch eine bessere idee?
perl-Glib von der 9.3-DVD dürfte deutlich mehr Abhängigkeiten haben, da es u. a. eine Datei Glib.so (binär) enthält und somit vermutlich eine versionsgebundene Abhängigkeit zur glib hat. Ich würde vorschlagen, das Source-RPM neu zu kompilieren. Gruß Christian Boltz -- [16x *PATSCH*]
Gerade du solltest wissen, dass man keine Domains missbraucht! [...] Sorry David, ich gelobe Besserung, aber bitte keine Schläge mehr ;-) [> Manfred Tremmel und David Haller in suse-linux]
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo Torsten! on 01.11.2005 10:09 Torsten.Schnabel@phoenix-ag.com said the following:
Hallo Leute,
wenn es nur um einzelene Zertifikate geht, erstelle ich sie mit openssl selber. Dazu muß eigentlich nur das openssl-packet installiert sein.
Sehr schöne Anleitung für Apache. Jetzt die Preisfrage: 1. Wenn ich eine interne und eine externe Adresse habe (also z.B. als DynDNS und als interner Server) sind die angesprochenen Adressen ja unterschiedlich, d.h. es kommt eine Fehlermeldung, obwohl der Rechner derselbe ist, halt nur unter einem anderen Namen. Wie kann ich das Zertifikat für zwei Namen gültig machen bzw. Apache2 zwei Zertifikate je nach Referer aufdrücken? 2. Wie mache ich obiges ebenso mit Imapd? Also für IMAPs und POP3s? Ich habe IMAPs und POP3s unter SuSE 8.2 zum laufen gebracht, aber auch dort kann ich nicht für denselben Rechner verschiedene Zertifikate einbringen (obwohl die Option in der imapd.conf angegeben ist...). Und der 8.2er soll demnächst abgeschaltet werden. Danke T
Moin,
On Tue, 01 Nov 2005 13:32:16 +0100
"Dr. Thorsten Brandau"
Sehr schöne Anleitung für Apache. Jetzt die Preisfrage:
1. Wenn ich eine interne und eine externe Adresse habe (also z.B. als DynDNS und als interner Server) sind die angesprochenen Adressen ja unterschiedlich, d.h. es kommt eine Fehlermeldung, obwohl der Rechner derselbe ist, halt nur unter einem anderen Namen. Wie kann ich das Zertifikat für zwei Namen gültig machen bzw. Apache2 zwei Zertifikate je nach Referer aufdrücken?
Du kannst weitere Subjects in den erweiterten Inhalt des Zertifikats aufnehmen. Das müsste aber der Browser unterstützen, und ich habe da zuletzt schlechte Erfahrungen gemacht. Den Apache verschiedene Zertifikate nutzen zu lassen ist quasi unmöglich, so wie du das beschreibst. Schließlich wird erstmal die SSL-Verbindung aufgebaut und dann erst schickt der Client (aber nur wenn er will) einen Referer. Wenn du das IP-Adresse unterscheiden kannst, setz' doch einfach einen weiteren IP-based virtual host auf (statt auf 0.0.0.0 zu horchen) und benutz' dann dasselbe DocumentRoot (und ein anderes Zertifikat). Vielleicht kannst du auch das DNS-Resolving deiner "internen" Clients so umbiegen, dass die den "externen" Hostnamen benutzen können? Das Subject des Zertifikats gibt ja nur den Hostnamen an, so weit ich weiß, und nicht die IP.
2. Wie mache ich obiges ebenso mit Imapd? Also für IMAPs und POP3s? Ich habe IMAPs und POP3s unter SuSE 8.2 zum laufen gebracht, aber auch dort kann ich nicht für denselben Rechner verschiedene Zertifikate einbringen (obwohl die Option in der imapd.conf angegeben ist...). Und der 8.2er soll demnächst abgeschaltet werden.
Zweiter IMAPd auf der entsprechenden IP horchen lassen (und wieder von der Benutzung von 0.0.0.0 als Listening Socket absehen)? Gruß, -hwh
On Tuesday 01 November 2005 13:32, Dr. Thorsten Brandau wrote:
1. Wenn ich eine interne und eine externe Adresse habe (also z.B. als DynDNS und als interner Server) sind die angesprochenen Adressen ja unterschiedlich, d.h. es kommt eine Fehlermeldung, obwohl der Rechner derselbe ist, halt nur unter einem anderen Namen. Wie kann ich das Zertifikat für zwei Namen gültig machen bzw. Apache2 zwei Zertifikate je nach Referer aufdrücken?
Du solltest nach "x509 extensions subjectAltName=DNS:" googlen. Wichtig ist dabei, dass im Attribut subjectAltName der common name nochmal steht. Angenommen, Du willst diese Namen zertifizieren: a.b.c, c.d.e, i.j.k, dann brauchst Du ein Extensions-File mit diesem Inhalt: [ my_ext ] ... subjectAltName=DNS:i.j.k,DNS:a.b.c,DNS:c.d.e ... Das benutzt Du dann mit folgendem Kommando: openssl ca -extfile FILENAME -extensions my_ext ... Dabei ist FILENAME der Name Deines Extensions-Files und my_ext referenziert die Section, eben [ my_ext ]. Einer der 3 Namen steht dann nochmal bei CN=..., wenn Du den Zertifikat-Request bastelst (openssl req ...). Willst Du ohne extra-Files auskommen funktioniert auch das: ext='[ my_ext ] ... subjectAltName=DNS:i.j.k,DNS:a.b.c,DNS:c.d.e ...' openssl ca -extfile <(echo "$ext") -extensions my_ext ... Wenn Du mehrere Namen aus der gleichen Domain benutzt, funktionieren auch Wildcard Zertifikate, common name=*.domain.tld Torsten
participants (4)
-
Dr. Thorsten Brandau
-
Hans-Werner Hilse
-
Torsten Foertsch
-
Torsten.Schnabel@phoenix-ag.com