SSL - Falsches Zertifikat

Alles, was den Apache betrifft, kann hier besprochen werden.

SSL - Falsches Zertifikat

Postby splion » 23. August 2004 06:30

Hallo,

wenn ich auf meinen Webserver zugreife, bekomme ich immer das Zertifikat des ersten eingetragenen virtuellen Servers angezeigt (hier prodserv). Dann verzweigt er aber richtig in den aufgerufenen virtuellen Host.

Die Kiste selbst ist 192.168.0.16 (webserv). Hierauf läuft dann der virtuelle Host prodserv. Ein Reverse-Proxy zeigt dann auf mailserv.

Wo habe ich hier einen Fehler ?

ciao Andreas

Code: Select all
<IfDefine SSL>

Listen 192.168.0.16:443

SSLEngine on
SSLProxyEngine on
SSLCertificateFile "/etc/httpd/cert/webserv.crt"
SSLCertificateKeyFile "/etc/httpd/cert/webserv.key"

SSLSessionCache         dbm:/var/run/ssl_scache
SSLSessionCacheTimeout  300

# Virtuelle Server
NameVirtualHost 192.168.0.16:443

ProxyRequests on
ProxyTimeOut 10


# webserv ueber prodserv.dyndns.org
<VirtualHost 192.168.0.16:443>
        ServerName prodserv.dyndns.org:443
        ServerAdmin andreas.christ@edu.dom
        DocumentRoot "/usr/pkg/share/httpd/ssl"
        DirectoryIndex index.html

        ErrorLog /var/log/httpd/prodserv-error_log
        TransferLog /var/log/httpd/prodserv-access_log

        SSLEngine on
        SSLCertificateFile "/etc/httpd/cert/prodserv.crt"
        SSLCertificateKeyFile "/etc/httpd/cert/prodserv.key"
        UseCanonicalName off
</VirtualHost>


<VirtualHost 192.168.0.16:443>
        ServerName mailserv.dyndns.org:443
        ServerAdmin andreas.christ@edu.dom
 
        ErrorLog /var/log/httpd/mailserv-error_log
        TransferLog /var/log/httpd/mailserv-access_log
        SSLEngine on
        SSLProxyEngine on
        SSLCertificateFile "/etc/httpd/cert/mailserv.crt"
        SSLCertificateKeyFile "/etc/httpd/cert/mailserv.key"
        UseCanonicalName off
                <Proxy />
                        ProxyPass https://192.168.0.18:443/
                        ProxyPassReverse https://192.168.0.18:443/
                </Proxy>
</VirtualHost>


</IfDefine>
splion
 
Posts: 44
Joined: 19. August 2004 15:32

Postby Kristian Marcroft » 23. August 2004 08:31

Hi,

pro IP nur 1 Zerti!
Suche mal in google... mehrere Hostnames/Domains über SSL mit gültigem Zerti nur mit einem SSL Proxy!

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby splion » 23. August 2004 10:01

@KriS

Hallo,

ich finde da nichts passendes über die Suchmaschine. Habe da wohl nicht die richtigen Stichworte versucht.
Hast Du evtl. einen Link parat, der das Problem eines Zertifikats für mehrere Hostnames beschreibt ?

ciao Andreas
splion
 
Posts: 44
Joined: 19. August 2004 15:32

Postby Wiedmann » 23. August 2004 10:32

KriS wrote:pro IP nur 1 Zerti!

Das war doch deutlich...
Wenn du für jeden Vhost ein eigenes Zertifikat benötigsts, brauchst du IP-based VHosts und keine namebased. Sprich, jeder Vhost braucht eine eigene IP.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby splion » 23. August 2004 10:58

@Wiedmann,

ja, das mit der IP war deutlich aber danach habe ich auch nicht gefragt:

Hast Du evtl. einen Link parat, der das Problem eines Zertifikats für mehrere Hostnames beschreibt ?


Ich benötige Hinweise wie man ein Zertifikat für mehrere Hostnames verwendet, ohne die lästigen Warnings in den Logs zu bekommen.

ciao Andreas
splion
 
Posts: 44
Joined: 19. August 2004 15:32

Postby Kristian Marcroft » 23. August 2004 11:08

Hi,

Suchwort: SSL-Proxy

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby Wiedmann » 23. August 2004 11:18

Indem du einen SSL-Vhost mit funktionierendem Zertifikat nimmst. Und da für jeden namedbased VHost einen reverse Proxy in einem "Unterverzeichnis einrichtest" einrichtest.

http:
www.domain1.de
www.domain2.de

https:
ssl.domain.de/www.domain1.de
ssl.domain.de/www.domain2.de
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby splion » 23. August 2004 11:58

Hallo,

wenn ich also mein erstes Listing anpasse, sollte das Deinem Vorschlag entsprechen.

Code: Select all
<IfDefine SSL>

Listen 192.168.0.16:443

SSLEngine on
SSLProxyEngine on
SSLCertificateFile "/etc/httpd/cert/webserv.crt"
SSLCertificateKeyFile "/etc/httpd/cert/webserv.key"

SSLSessionCache         dbm:/var/run/ssl_scache
SSLSessionCacheTimeout  300

# Virtuelle Server
NameVirtualHost 192.168.0.16:443

ProxyRequests on
ProxyTimeOut 10


# webserv ueber prodserv.dyndns.org
<VirtualHost 192.168.0.16:443>
        ServerName prodserv.dyndns.org:443
        ServerAdmin andreas.christ@edu.dom
        DocumentRoot "/usr/pkg/share/httpd/ssl"
        DirectoryIndex index.html

        ErrorLog /var/log/httpd/prodserv-error_log
        TransferLog /var/log/httpd/prodserv-access_log

        SSLEngine on
        UseCanonicalName off
</VirtualHost>


<VirtualHost 192.168.0.16:443>
        ServerName mailserv.dyndns.org:443
        ServerAdmin andreas.christ@edu.dom
 
        ErrorLog /var/log/httpd/mailserv-error_log
        TransferLog /var/log/httpd/mailserv-access_log
        SSLEngine on
        SSLProxyEngine on
        UseCanonicalName off
                <Proxy />
                        ProxyPass https://192.168.0.18:443/
                        ProxyPassReverse https://192.168.0.18:443/
                </Proxy>
</VirtualHost>


</IfDefine>


Wäre das so korrekt ?

Falls dem so wäre, habe ich aber immer noch die lästigen Meldungen im Log, daß das Zertifikat nicht mit dem Rechnernamen zusammenpasst.

Code: Select all
[Mon Aug 23 15:26:20 2004] [warn] RSA server certificate CommonName (CN) `webserv.sp-lion.dom' does NOT match server name!?


ServerAlias im Virtualhost bringt offensichtlich auch keine Verbesserung.

Ein weiteres Problem ist eine Meldung, die ich auch nicht in den Griff bekomme.

Code: Select all
[Mon Aug 23 14:27:57 2004] [warn] Proxy client certificate callback: (mailserv.dyndns.org:443) downstream server wanted client certificate but none are configured


ciao Andreas
splion
 
Posts: 44
Joined: 19. August 2004 15:32

Postby Wiedmann » 23. August 2004 12:12

Wiedmann wrote:Indem du einen SSL-Vhost mit funktionierendem Zertifikat nimmst.

Du hast bei dir jetzt ja schon wieder 2 namebasierende SSL-Vhosts.

Du darfst nur einen SSL-Vhost machen (IP basierend für Port 443), und deine 2 normalen namebased Vhosts für http-Zugriffe (Port 80). In diesem einem Vhost gibt es 2 Locations mir R-Proxys (z.B.):
/prodserv.dyndns.org --> reverse Proxy auf: "http://prodserv.dyndns.org/"
/mailserv.dyndns.org --> reverse Proxy auf: "http://mailserv.dyndns.org/"

Die SSL-Verbindung ruft man dann im Browser auf mit:
"https://ssldomain.dyndns.org/prodserv.dyndns.org"
"https://ssldomain.dyndns.org/mailserv.dyndns.org"

Für dieses "ssldomain.dyndns.org" muss dann auch das Zertifikat ausgestellt sein.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby splion » 23. August 2004 12:50

Hallo,

jetzt verstehe ich, was Du meinst :idea:

Ich muß meine Konfiguration aber so belassen.
Meine Konstellation ist wie folgt.
Es gibt mailserv.dyndns.org und einen prodserv.dyndns.org (Namen frei erfunden!). Beide zeigen auf die gleiche IP-Adresse 1.2.3.4
prodserv.dyndns.org entspricht dem Proxy-Rechner, mailserv.dyndns.org dem entfernten SSL-Server.
D.h. doch dann ich muß zwei Namebased VHost aufsetzen, oder :?:

Eine verzeichnisbasierte Verzweigung kann ich nicht verwenden !

Somit denke ich, ist meine Konfiguration im ersten Step mal ok (ich lasse mich da gerne korrigieren, wenn ich irriger Meinung bin).

Kann man keine Zertifikate erzeugen, die für mehrere Rechnernamen gelten ? Wie macht das denn z.B. 1-und-1. Dort passiert doch sicher auch nichts anderes ?

ciao Andreas
splion
 
Posts: 44
Joined: 19. August 2004 15:32

Postby Kristian Marcroft » 23. August 2004 13:13

Hi,

Bitte lesen, so macht es 1und1:
http://faq.1und1.de/server/windows/domains/4.html

Hier aber auch mal wie Wiedmann das meinte:
folgendes z.B. in eine sslproxy.conf ins Apache conf dir speichern und in der httpd.conf includen:

<VirtualHost 192.168.6.1:443>
DocumentRoot "/home/www/htdocs/sslproxy"
ServerName ssl.domain.de
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache/ssl.key/server.key
SSLEngine on
# Rewrite-Engine einschalten fuer Umschreiben der URL
RewriteEngine on
# Logging ausschalten mit folgenden Zeilen:
#RewriteLog /dev/null
#RewriteLog 0
RewriteLog /var/log/apache/sslproxy.log
RewriteLogLevel 1
RewriteMap lowercase int:tolower
# RewriteMap für die Domainnamen, welche SSL erhalten sollen
RewriteMap domaindb txt:/etc/apache/ssldomains
RewriteRule ^/icons/(.+) - [L]
# Fuer MS Internet Explorer ab Version 6
RewriteRule ^/w3c/(.+) - [L]
# Domain in Kleinbuchstaben umwandeln (fuer Datenbank-Lookup)
RewriteRule ^/([^/]+)/(.*) /${lowercase:$1}/$2 [S=1]
RewriteRule ^/(.*) /${lowercase:$1}
RewriteRule ^/www\.([^/]+)/(.*) /${domaindb:$1|%{HTTP_HOST}/$1}/$2 [S=2]
RewriteRule ^/([^/]+)/(.*) /${domaindb:$1|%{HTTP_HOST}/$1}/$2 [S=1]
RewriteRule ^/(.+) /$1/ [R,L]
RewriteRule ^/(.*) http://$1 [P,L]
</VirtualHost>

Hier wäre nur noch die IP zu ändern, die domain, das DocumentRoot und eine Datei ssldomains anzulegen die dann wie folgt aussieht:

#Pfad -> Domain
prodserv.dyndns.org prodserv.dyndns.org
mailserv.dyndns.org mailserv.dyndns.org


Dann wären die beiden domains über https://ssl.domain.de/prodserv.dyndns.org und https://ssl.domain.de/mailserv.dyndns.org erreichbar.

Desweiteren könntest du die obige Datei auch sogestallten:
#Pfad -> Domain
prodserv prodserv.dyndns.org
mailserv mailserv.dyndns.org


Dann wären die SSL Domains über: https://ssl.domain.de/prodserv und https://ssl.domain.de/mailserv erreichbar.

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby splion » 23. August 2004 13:38

Hi,

wenn ich das rewrite-feature richtig verstanden habe, muß der Host, auf den umgeleitet wird auch direkt erreichbar sein.
Mein mailserv.dyndns.org steht aber hinter einer firewall, daher auch der Versuch mit mod_proxy und mod_ssl_proxy. Von außen muß ich auf die gleiche IP:Port (a.b.c.d:443) gehen und per übergebenem Server-Namen entscheiden, ob die Anfrage an den Proxy selbst oder an den Server in der DMZ der Firewall geht. Das wollte ich so lösen, daß die FW ein Port-NAT macht und an den werbserv (192.168.0.16) weiterleitet, der dann letztlich die Proxy-Funktionalität zur Verfügung stellt.
Leider kann die firewall beim Port-NAT nicht auf den Servernamen prüfen, sonst hätte ich hier schon eine Trennung zwischen prodserv und mailserv eingestellt.

Code: Select all
     INet
      |
      | a.b.c.d
 +----+----+
 | ROUTER  |  Port-NAT auf 192.168.1.2 am Router
 +----+----+
      |
      |                +---------+    +---------+
      |                |prodserv |    |mailserv |
      |                |webserv  |    |         |
      |                +----+----+    +----+----+
 +----+----+                |              |
 | F-WALL  +----------------+--------------+-------DMZ
 +----+----+          192.168.0.16    192.168.0.18
      |
      +


Somit scheidet die rewrite-Lösung leider aus :(

Habt Ihr noch eine Idee, wie ich meine Warnings weg bekomme ?

Ich muß hier mal sagen, daß Ihr beiden Euch wirklich Mühe gebt :D
splion
 
Posts: 44
Joined: 19. August 2004 15:32


Return to Apache

Who is online

Users browsing this forum: No registered users and 17 guests