IPbased und namebased vhosts gemischt betreiben (SSL & I

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

IPbased und namebased vhosts gemischt betreiben (SSL & I

Postby SirSydom » 04. May 2007 13:49

Hallo!

Also ich habe einen Server und dazu eine öffentliche IP-Adresse.
Auf diesem Server werden über Apache einige Webseiten gehostet.
Nun funktioniert ja da SSL nur eingeschränkt mit Name-Based-vhosts, weil alle vhosts sich ein Zertifikat teilen.

Warum das so ist, wegen Sockets und so, is klar.

Zur partiellen Lösung, zumindest für Leute mit IPv6 Connectivity, habe ich mir ein IPv6 Subnetz besorgt und DNS entsprechend konfiguriert:
Code: Select all
;; ANSWER SECTION:
www.spies-it.de.        86333   IN      A       84.38.64.166

;; ANSWER SECTION:
www.spies-it.de.        86313   IN      AAAA    2001:6f8:1080::1:2



Ein wenig zur Konfiguration:

Code: Select all
Listen 84.38.64.166:80
Listen 84.38.64.166:443
Listen 172.16.34.1:80
Listen 172.16.34.1:443
Listen [2001:6f8:1080::1:2]:80
Listen [2001:6f8:1080::1:2]:443


Code: Select all
root@comefrom:~# netstat -taupen | grep apache2
tcp        0      0 84.38.64.166:80         0.0.0.0:*               LISTEN     0          26185      5843/apache2       
tcp        0      0 172.16.34.1:80          0.0.0.0:*               LISTEN     0          26187      5843/apache2       
tcp        0      0 84.38.64.166:443        0.0.0.0:*               LISTEN     0          26186      5843/apache2       
tcp        0      0 172.16.34.1:443         0.0.0.0:*               LISTEN     0          26188      5843/apache2       
tcp6       0      0 2001:6f8:1080::1:2:80   :::*                    LISTEN     0          26189      5843/apache2       
tcp6       0      0 2001:6f8:1080::1:2:443  :::*                    LISTEN     0          26190      5843/apache2


"default" vhosts:

Code: Select all
NameVirtualHost 84.38.64.166:80
NameVirtualHost 84.38.64.166:443
<VirtualHost 84.38.64.166:80>
        ServerName www.comefrom.de
        ServerAdmin webmaster@comefrom.de

[...]

</VirtualHost>

<VirtualHost 84.38.64.166:443>
        ServerName www.comefrom.de
        ServerAdmin webmaster@comefrom.de

        SSLEngine On
        SSLCertificateFile      /etc/ssl/certs/www.comefrom.de-cacert-ds.crt
        SSLCertificateKeyFile   /etc/ssl/private/www.comefrom.de-cacert-ds.key

        DocumentRoot /var/www

[...]

</VirtualHost>


Und noch ein paar mehr vhosts auf der 84.38.64.166 (nach dem gleichen Schema).

So, dann hab ich einen vhost, der auch per IPv4 erreichbar ist, zusätzlich IPv6 eingerichtet (DNS funktioniert):

Code: Select all
<VirtualHost 84.38.64.166:80>
   ServerName www.spies-it.de
   ServerAdmin webmaster@spies-it.de
   
   [...]
</VirtualHost>

<VirtualHost 84.38.64.166:443>
   ServerName www.spies-it.de
   ServerAdmin webmaster@spies-it.de
   
   SSLEngine On
   SSLCertificateFile      /etc/ssl/certs/www.comefrom.de-cacert-ds.crt
   SSLCertificateKeyFile   /etc/ssl/private/www.comefrom.de-cacert-ds.key
   
   [...]
</VirtualHost>

<VirtualHost [2001:6f8:1080::1:2]:80>
   ServerAdmin webmaster@spies-it.de
   
   [...]
</VirtualHost>

<VirtualHost [2001:6f8:1080::1:2]:443>
   ServerAdmin webmaster@spies-it.de
   
   SSLEngine On
   SSLCertificateFile      /etc/ssl/certs/www.spies-it.de-cacert-ds.crt
   SSLCertificateKeyFile   /etc/ssl/private/www.spies-it.de-cacert-ds.key
   
   [...]
</VirtualHost>


Testweise habe ich mal die NameVirtualHost Directive und alle NameBased SSL VHosts rausgenommen: Ohne Erfolg.
Trotz allem wird auch bei Verbidnung über IPv6 das falsche Zertifikat ausgegeben: http://www.comefrom.de. Was mache ich falsch?

(Dieser Beitrag wurde in ähnlicher Form bereits im linuxforen Forum gepostet. jedoch ohne nenneswerte Rückmeldungen (http://www.linuxforen.de/forums/showthread.php?t=235840).
User avatar
SirSydom
 
Posts: 3
Joined: 03. May 2007 09:36

Postby SirSydom » 12. May 2007 17:32

77 Views und keine einzige Antwort?
Hab ich irgendwie gegen die Forumsregeln verstoßen oder sonstwie was falsch gemacht, ich hab mich doch wirklich bemüht..
User avatar
SirSydom
 
Posts: 3
Joined: 03. May 2007 09:36

Postby Wiedmann » 12. May 2007 17:51

77 Views und keine einzige Antwort?

Wahrscheinlich beschäftigt sich hier keiner mit diesem Thema ;-)

Aber lass mich mal spekulieren...
Da du ja wohl nur Linux benutzt, wird für IPv4 und IPv6 der selbe Socket benutzt. OpenSSL wird dann einfach das Cert nehmen, von dem VHost den du als Erstes für diesen Socket eingerichtet hast. *vermut*
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby SirSydom » 12. May 2007 21:05

Ja ich nutze Linux, Ubuntu 6.06 LTS Server.

Wieso der selbe Socket? Ich sorge doch explizit durch ein Listen dafür, das extra Sockets genutzt werden, was doch auch durch die netstat Ausgabe bestätigt wird.

Oder vertehe ich das was falsch? Ein Socket war für mich immer der Tupel aus IP-Adresse und Port-Nummer. Und da hab ich sogar 6 verschiedene, 3 für SSL..
User avatar
SirSydom
 
Posts: 3
Joined: 03. May 2007 09:36

Postby Wiedmann » 13. May 2007 01:03

Ein Socket war für mich immer der Tupel aus IP-Adresse und Port-Nummer.

Soweit die Theorie. Unter Unix oder Windows ist das normal auch so.

Linux dagegen, kann pro Port nur einen Socket benutzen. Wenn auf dem System IPv6 aktiviert ist, werden darauf hin IPv4 Connections auf den dazugehörigen IPv6 Socket gemapped.

(Soweit mein bisheriger Wissensstand. Könnte natürlich sein, dass sich das mittlerweile geändert hat. Aber ich beschäftige mich mit Linux nicht weiters...)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests