PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vitual Hosts und SSL unter Apache



steve-bracket
20.06.03, 09:10
Hallo Leute
Frage zu NBVH und SSL.

Mit Namensbasierenden Virtuellen Hosts einen Socket Layer Handschake zu erreichen ist meines Wissens ja nicht möglich da ja der SSL Vorgang vor dem versenden von Daten (HTTP Header) ausgeführt wird und NBVH gerade dieses Feature ausnutzen.

Um SSL zu benutzen muss der Webserver direkt über einen Socket angesprochen werden.

Wenn aber jedem NBVH ein eigener Port zugewiesen wird müsste es doch funktionieren. Damit kann man direkt auf einen NBVH zeigen und die Headerinfo ist für den Webserver nicht nötig um zu wissen was mit der Anfrage zu tun ist.

zb <VirtualHost www.xyz.de:443> oder <VirtualHost www.xyz.de:1443>

Frage:
Stimmt meine Überlegung und kann das auch umgesetzt werden oder nicht ?
Vielleicht hat ja auch jemand genau das laufen.

PS: Bin mir ziemlich sicher das es funktionieren sollte.

fg
Steve

Bauchi
20.06.03, 09:19
hi,
also bei mir funktioniert das so :-)

allerdings hab ich in den <virtualhost> direktiven direkt die ip drin und nicht die domainnames :-)

steve-bracket
20.06.03, 09:37
Hallo Bauchi

Das heißt du hast KEINE NameVirtualHosts sondern nur VirtualHosts.
Damit ist es keine Problem, ich weiß. Mir geht es explizit um NameVirtualHosts.
(die durch die unterschiedliche Portbelegung eindeutig voneinander zu unterscheiden sind obwohl überall die gleiche IP benutzt wird)

Thx for the response.

fG
Steve

steve-bracket
20.06.03, 11:26
Sonst keiner etwas dergleichen ?!?!?!?

fG
Steve

RichieX
20.06.03, 16:28
Hi steve-bracket,

also ich hatte auch schon mal einen NBVH mit SSL am laufen, wenn ich das richtig verstehe, was Du meinst. Und zwar genau so wie Du es beschrieben hattest.



<virtualhost xxx.yyy.de:443>
SSLEngine On
...

</virtualhost>


Oder meintest Du was anderes?

RichieX

steve-bracket
20.06.03, 18:44
also ich hatte auch schon mal einen NBVH mit SSL am laufen, wenn ich das richtig verstehe, was Du meinst. Und zwar genau so wie Du es beschrieben hattest.


Freut mich zu hören das es funktioniert.
Wie gesagt ein NameVirtualHost <VirtualHost www.xyz.de:443 >
KEIN VirtualHost der sich auf eine IP bezieht. <VirtualHOst 217.170.181.182:443>

fG
Steve

Bauchi
21.06.03, 12:18
ähm ... wieso unterscheidest du zwischen namevirtualhost und virtualhost ??
beim namevirtualhost löst er beim einlesen der config die ip adresse zu dem configurierten hostnamen auf und bindet das interface dementsprechend ...

mit ssl KANNST du KEINE namevirtualhosts machen das liegt ja in der natur von ssl/tls :-/

ob du :
<virtualhost xxx.yyy.de:443>
...
</virtualhost>

oder

<virtualhost 1.2.3.4:443>
...
</virtualhost>

verwendest ist eigentlich *******egal, weil's auf's gleiche rausläuft.

steve-bracket
21.06.03, 12:31
ob du :
<virtualhost xxx.yyy.de:443>
...
</virtualhost>

oder

<virtualhost 1.2.3.4:443>
...
</virtualhost>


Na gut, dann legen wir mal folgende Name Virtuellen Hosts an.
www1, www2, www3.xyz.at alle unter der gleichen IP erreichbar.


NameVirtualHost 1.2.3.4

<VirtualHost www1.xyz.at>
DocumentRoot /usr/local/httpd/htdocs1
ServerName www3.xyz.at
</VirtualHost>


<VirtualHost www2.xyz.at>
DocumentRoot /usr/local/httpd/htdocs2
ServerName www3.xyz.at
</VirtualHost>


<VirtualHost www3.xyz.at>
DocumentRoot /usr/local/httpd/htdocs3
ServerName www3.xyz.at
</VirtualHost>

So funktioniert der Zugriff auf die Hosts www1,2,3 mit unterschiedlichen Websites
---------------------

NameVirtualHost 1.2.3.4

<VirtualHost 1.2.3.4>
DocumentRoot /usr/local/httpd/htdocs1
ServerName www3.xyz.at
</VirtualHost>


<VirtualHost 1.2.3.4>
DocumentRoot /usr/local/httpd/htdocs2
ServerName www3.xyz.at
</VirtualHost>


<VirtualHost 1.2.3.4>
DocumentRoot /usr/local/httpd/htdocs3
ServerName www3.xyz.at
</VirtualHost>

So funktioniert der Zugriff NICHT auf die Hosts www1,2,3 mit unterschiedlichen Websites
Zumindest aus eigener Erfahrung.



mit ssl KANNST du KEINE namevirtualhosts machen das liegt ja in der natur von ssl/tls :-/


Wenn der VirtuelHost eindeutig zu erkennen ist (entweder durch IP oder Port) dann schon. GEnau darum geht es ja, schon vor dem Handschake zu wissen wo die Anfrage hingehen soll.

fG
Steve
fG
Steve

Bauchi
21.06.03, 12:40
jo schon klar.. allerdings hat das bei ssl sites in NIX mehr mit den namevirtualhost funktionen des apachen zu tun, sondern damit, das du jedem virtuellen host einen eigenen socket spendierst.

im übrigen wird auch bei http die entscheidung welcher virtuelle host angesprochen wird nicht über das <virtualhost www1.xyz.de> getroffen sondern über das argument das mit ServerName oder ServerAlias gebunden wird.

Das was oben bei <virtualhost> drinsteht, bezieht sich lediglich auf den socket der gebunden wird.

zu deinem beispiel:
du hast bei jedem virtuellen host als ServerName den gleichen name drin, ein httpd -t oder ein apachectl configtest müsste dich über diese inkonsistenz warnen.

steve-bracket
21.06.03, 12:44
UUPPS

So muss es heissen.
Die hab ich kurz geschrieben und beim kopieren das umändern vergessen
:-)

NameVirtualHost 1.2.3.4

<VirtualHost www1.xyz.at>
DocumentRoot /usr/local/httpd/htdocs1
ServerName www1.xyz.at
</VirtualHost>


<VirtualHost www2.xyz.at>
DocumentRoot /usr/local/httpd/htdocs2
ServerName www2.xyz.at
</VirtualHost>


<VirtualHost www3.xyz.at>
DocumentRoot /usr/local/httpd/htdocs3
ServerName www3.xyz.at
</VirtualHost>

So funktioniert der Zugriff auf die Hosts www1,2,3 mit unterschiedlichen Websites
---------------------

NameVirtualHost 1.2.3.4

<VirtualHost 1.2.3.4>
DocumentRoot /usr/local/httpd/htdocs1
ServerName www1.xyz.at
</VirtualHost>


<VirtualHost 1.2.3.4>
DocumentRoot /usr/local/httpd/htdocs2
ServerName www2.xyz.at
</VirtualHost>


<VirtualHost 1.2.3.4>
DocumentRoot /usr/local/httpd/htdocs3
ServerName www3.xyz.at
</VirtualHost>

So funktioniert der Zugriff NICHT auf die Hosts www1,2,3 mit unterschiedlichen Websites
Zumindest aus eigener Erfahrung





jo schon klar.. allerdings hat das bei ssl sites in NIX mehr mit den namevirtualhost funktionen des apachen zu tun, sondern damit, das du jedem virtuellen host einen eigenen socket spendierst.


Ja, stimmt.



Um SSL zu benutzen muss der Webserver direkt über einen Socket angesprochen werden.


Hab ich beim ersten Beitrag schon angesprochen.

fG
Steve