PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Domains, ein Zertifikat



Windoofsklicker
16.08.05, 11:44
Hi Folks,

ich richte grade eine CA ein und habe folgendes Problem:
Der Laden hier ist von aussen unter zwei Domains zu erreichen. Webmail und VPN sind per https erreichbar und sollen nun auch "richtige" Zertifikate bekommen. Die "Kunden" können also https://webmail.abc.de und https://webmail.def.de aufrufen. Im DNS wird die IP auf die Domain abc.de aufgelöst.

Dann habe ich den CSR wie folgt erstellt:
CN=webmail.abc.de
subjectAltName=DNS:webmail.def.de

Leider wird von allen Browsern beim Aufruf der Seite https://webmail.def.de bemängelt, dass das Zertifikat für https://webmail.abc.de ausgestellt ist. Wenn ich nun das Zertifikat im Browser betrachte, wird jedoch der Zertifikatsgegenstand-Alternativ-Name = DNS:webmail.def.de korrekt angezeigt.

Ich habe auch schon die Domains getauscht (CN und AltName), leider ohne Erfolg. Was habe ich übersehen?

crazygeek
16.08.05, 11:49
Nur mal ne Vermutung, keine Ahnung ob das geht.

Kannst du nicht bei VirtualHost im Apache für jeden VirtualHost ein eigenes Certificate angeben!?

crazygeek
16.08.05, 12:01
UPDATE:

http://httpd.apache.org/docs/2.1/mod/mod_ssl.html

ich was ich so beim überfliegen gelesen habe, gelten die SSL einstellungen auch in der VirutalHost Sektion der Config also würd ich sagen, 1 Zertifikat pro Domain in jedem VirtualHost.

Ich geh mal davon aus dass du VirtualHosts benutzt nach dem du die 2 Domains auf eine IP auflöst ;)

Windoofsklicker
16.08.05, 12:34
Hi crazygeek,

bitte das Ganze unabhängig vom Apachen betrachten, da in der CA auch andere Dienste (VPN, IMAPS,...) mit diesen Zertifikaten arbeiten müssen.
Abgesehen davon benutzt der Apache auch nur ein Zertifikat für die vHosts, wenn ich das hier (http://mail-archives.apache.org/mod_mbox/httpd-bugs/200412.mbox/%3C200412112328.iBBNSDM0008955@ajax.apache.org%3E) richtig interpretiere. Aber trotzdem Danke soweit.

Jasper
16.08.05, 13:28
Abgesehen davon benutzt der Apache auch nur ein Zertifikat für die vHosts, wenn ich das hier (http://mail-archives.apache.org/mod_mbox/httpd-bugs/200412.mbox/%3C200412112328.iBBNSDM0008955@ajax.apache.org%3E) richtig interpretiere.

dein problem liegt im browser, nicht beim apache, weil der browser das zertifikat prüft.
was passiert, wenn du beide domains als subjectAltName angibst, also z.b. so:

subjectAltName: DNS:erste.domain.de,DNS:zweite.domain.de,IP:1.2.3. 4,IP:5.6.7.8

und als CN einfach den FQDN des hosts angibst?

und sieh dir den handshake mal mit 'openssl s_client -connect host.domain.tld:443 -state -debug' an.


-j

Windoofsklicker
16.08.05, 14:21
was passiert, wenn du beide domains als subjectAltName angibst, also z.b. so:

subjectAltName: DNS:erste.domain.de,DNS:zweite.domain.de,IP:1.2.3. 4,IP:5.6.7.8

und als CN einfach den FQDN des hosts angibst?


Genau das gleiche. Die Browser scheinen das subjectAltName vollkommen zu ignorieren. Nur der CN wird klaglos akzeptiert.


und sieh dir den handshake mal mit 'openssl s_client -connect host.domain.tld:443 -state -debug' an.


Habe ich gemacht. Die Zertifikate werden ausgetauscht und auch vollständig angezeigt (der DN). Das einzig Auffällige ist die letzte Zeile:
Verify return Code: 21 (unable to verify the first certificate). Ich denke mal das liegt daran, dass der Client (also openssl-konsole) den Public Key der CA nicht kennt, oder?

Jasper
16.08.05, 14:57
Genau das gleiche. Die Browser scheinen das subjectAltName vollkommen zu ignorieren. Nur der CN wird klaglos akzeptiert.


werde das mal bei mir testen.



Habe ich gemacht. Die Zertifikate werden ausgetauscht und auch vollständig angezeigt (der DN). Das einzig Auffällige ist die letzte Zeile:
Verify return Code: 21 (unable to verify the first certificate). Ich denke mal das liegt daran, dass der Client (also openssl-konsole) den Public Key der CA nicht kennt, oder?

ja, man kann s_client aber die CA-certs mitgeben: '-CAfile' + '-showcerts'.


-j

Windoofsklicker
16.08.05, 15:37
werde das mal bei mir testen.


Das wäre echt Super! Noch zur Info: Ich habe die CA mit roCA in Betrieb und die Keys/CSRs auf einem seperaten Rechner generiert. Die Zusätzlichen Attribute sind aber im Zertifikat noch sichtbar, werden also auch vom Browser angezeigt und gehen somit nicht beim Signieren verloren.

Jasper
16.08.05, 20:27
grade mal getestet. worked like expected.

openssl x509 -text -noout -in cert.pem:
CN=www.domain.tld/emailAddress=webmaster@domain.tld
...
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:alias.domain.tld

beim starten beschwerte sich apache, dass hostname und CN nicht übereinstimmen:

[Tue Aug 16 19:40:10 2005] [warn] RSA server certificate CommonName (CN) `www.domain.tld' does NOT match server name!?

das problem lässt sich durch:

<VirtualHost *:443>
ServerName www.domain.tld
ServerAlias alias.domain.tld

beheben.
der browser (firefox-1.06) akzeptiert das zertifikat, solange wie der hostname der url = CN || subjectAltName ist.


-j

Windoofsklicker
17.08.05, 12:03
Hm, könntest du mal
* die Ausgabe von: openssl asn1parse -in <Zertifikat> -dump
* deine OpenSSL Version
* die SSL-Config
* und vielleicht sogar das Zertifikat posten?

Ich habe das mit Windows und Linux, dem IE, Firefox 1.04,1.06 und Konqueror ausprobiert und die haben sich alle nur am CN orientiert.