SSL für Unterordner aktivieren

jtd

New Member
Hallo,

Ich stehe seit einiger Zeit vor folgendem Problem und habe bisher noch keine Lösung gefunden:

Ich habe einen Webserver mit eigener IP und mehreren Domains. Für eine Domain(domain1.de), und nur diese, soll eine SSL-Verschlüsselung erfolgen. Das Erstellen des Zertifikats verlief problemlos und auch die Domain spricht auf https://www.domain1.de an.
Das Problem ist aber, dass alle anderen Domains ebenfalls darauf ansprechen, sprich https://www.domain2.de, https://www.domain3.de, etc. geben ebenfalls den für domain1.de hinterlegten DocumentRoot aus.
Frage: Wie kann ich das unterbinden? Die anderen Domains sollen nur auf http:// reagieren.

Hier meine vhosts.conf:

Code:
NameVirtualHost *:80

<VirtualHost *:443>
  DocumentRoot /srv/www/domain1
  ServerName domain1.de
	
  SSLEngine On
  SSLCertificateKeyFile /etc/apache2/ssl/server.key
  SSLCertificateFile    /etc/apache2/ssl/server.crt
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /srv/www/domain2
  ServerName www.domain2.de
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /srv/www/domain3
  ServerName www.domain3.de
</VirtualHost>



Weitere Frage:

Wie kann ich es umsetzen, dass von der SSL-Domain (domain1.de) lediglich ein Unterordner (domain1.de/sicher) SLL-verschlüsselt wird? Ist <Directory srv/www/domain1/sicher></Directory> der richtige Ansatz?
 
Das Problem ist, dass der SSL-Host kein Named-VirtualHost ist. Es ist dem Apache also egal, mit welcher Domain man das aufgerufen hat.

Mit diesem Setup landen alle SSL-Aufrufe, die nicht explizit die Domain1 ansprechen auf dem Default-SSL-Host, auf dem du dann entsprechend einen Hinweis anzeigen kannst oder was auch immer.
Wichtig ist, dass dieser das selbe Zertifikat wie der Domain1-SSL-Host bekommt, da technisch nur ein Zertifikat möglich ist. Der Client bekomt immer das Zertifikat des SSL-VHost
zu sehen, der in der Konfiguration zuerst auftaucht.

Code:
NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
  DocumentRoot /srv/www/default
  ServerName _default_

  SSLEngine On
  SSLCertificateKeyFile /etc/apache2/ssl/server.key
  SSLCertificateFile    /etc/apache2/ssl/server.crt
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /srv/www/domain1
  ServerName domain1.de
	
  SSLEngine On
  SSLCertificateKeyFile /etc/apache2/ssl/server.key
  SSLCertificateFile    /etc/apache2/ssl/server.crt
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /srv/www/domain2
  ServerName www.domain2.de
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /srv/www/domain3
  ServerName www.domain3.de
</VirtualHost>
 
Last edited by a moderator:
Frage: Wie kann ich das unterbinden?
Du besorgst dir eine dedizierte IP-Adresse für die Domain, die via HTTPS erreichbar sein soll. Die anderen Domains belässt du auf der aktuellen IP-Adresse.

Wie kann ich es umsetzen, dass von der SSL-Domain (domain1.de) lediglich ein Unterordner (domain1.de/sicher) SLL-verschlüsselt wird?
Nein. Aber du kannst mit SSLRequireSSL dafür sorgen, dass dieses Verzeichnis ausschließlich SSL-verschlüsselt ausgeliefert wird.
 
Back
Top