marinux
Goto Top

SSL und Apache2 auf Debian 5.0.8

Hallo,

ich bin gerade dabei auf unserem Apache SSL zu installieren, was soweit auch schon klappt, d.h. wir sind über "https://" erreichbar. Wir haben mehrere Virtual Hosts konfiguriert auf Port 80:

default
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.de
DocumentRoot /var/www/default
</VirtualHost >

server1
<VirtualHost *:80>
ServerName server1.domain.de
DocumentRoot /var/www/default
</VirtualHost >

server2
<VirtualHost *:80>
ServerName server2.domain.de
DocumentRoot /var/www/default
</VirtualHost >

Um SSL zu ermöglichen habe ich nun eine default-ssl erstellt und die Server-SSLs:

default-ssl
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.domain.de
DocumentRoot /var/www/default
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
</VirtualHost >

server1-ssl
<VirtualHost *:443>
ServerName server1.domain.de
DocumentRoot /var/www/default
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
</VirtualHost >

server2-ssl
<VirtualHost *:443>
ServerName server2.domain.de
DocumentRoot /var/www/default
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
</VirtualHost >

Wen ich https://www.domain.de aufrufe ist alles super. Rufe ich aber https://server1.domain.de oder https://server2.domain.de auf, wird mir die Seite von www.domain.de angezeigt.

Installiere ich nur die server1-ssl, und rufe https://www.domain.de oder https://server2.domain.de auf, dann wird mir die Website von server1.domain.de angezeigt.

Wie wären die Einstellungen vorzunehmen, wenn ich z.B. nur server2 über SSL laufen lassen möchte und bei den anderen Beiden keine Verbindung zustande kommt.

Gruß

Marinux

Content-Key: 161945

Url: https://administrator.de/contentid/161945

Printed on: April 25, 2024 at 22:04 o'clock

Member: nxclass
nxclass Mar 03, 2011 at 13:04:40 (UTC)
Goto Top
SSL funktioniert nur für einen Host (eine IP und Zertifikat) - liegt u.A. am Protokoll

EDIT: Eigentlich müsstest Du eine Fehlermeldung im Log haben, wenn du mehrere SSL Hosts definierst.
Member: marinux
marinux Mar 03, 2011 at 13:37:54 (UTC)
Goto Top
Hallo,

ich habe ja auch nur einen physischen Host, aber mehrere virtuelle Hosts.

Jetzt möchte ich nach belieben virtuelle Hosts mit SSL versorgen können und auch nach belieben abschalten.

Sprich ich möchte https://server1.domain.de nutzen können, die anderen beiden Domains sollen über SSL nicht erreichbar sein.
Oder ich möchte https://server1.domain.de und https://server2.domain.de nutzen können, die Default Domain soll über SSL nicht erreichbar sein.

Gruß

Marinux
Member: nxclass
nxclass Mar 03, 2011 at 13:53:21 (UTC)
Goto Top
Solange Du nur EIN SSL Host konfigurierst ist das kein Problem - simples Shell Script kann das erledigen - aber mehrere SSL VHosts kann man nicht (noch nicht) einrichten.

Es sollte aber möglich sein die einzelnen SSL VHosts an unterschiedliche Ports zu binden - das sollte dann funktionieren.
Member: marinux
marinux Mar 03, 2011 at 15:41:39 (UTC)
Goto Top
Könntest du mir ein Beispiel geben. ICh möchte z.B. nur, dass server1.domain.de über ssl erreichbar ist. Alle anderen VHosts nicht. Wie muss ich das unter sites-available einrichten?

Gruß

Marinux
Member: nxclass
nxclass Mar 03, 2011 at 18:00:09 (UTC)
Goto Top
ich nutze ein Shell Script zum erstellen und löschen der virtuellen Hosts

sites-available.ssl.template
<VirtualHost *:80>
	ServerName {VHOST}.domain.net
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/vhost/{VHOST}/www/

	<Directory /var/www/vhost/{VHOST}/www/>
		Options FollowSymLinks MultiViews
		AllowOverride FileInfo
		Order allow,deny
		allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log
	LogLevel warn
	CustomLog /var/www/vhost/{VHOST}/log/access.log vhost_combined 
</VirtualHost>

<VirtualHost *:443>
	ServerName {VHOST}.domain.net
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/vhost/{VHOST}/www/

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/apache.pem

	<Directory /var/www/vhost/{VHOST}/www/>
		Options FollowSymLinks MultiViews
		AllowOverride FileInfo
		Order allow,deny
		allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log
	LogLevel warn
	CustomLog /var/www/vhost/{VHOST}/log/access_ssl.log vhost_combined 
</VirtualHost>

sites-available.template
<VirtualHost *:80>
	ServerName {VHOST}.domain.net
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/vhost/{VHOST}/www/

	<Directory /var/www/vhost/{VHOST}/www/>
		Options FollowSymLinks MultiViews
		AllowOverride FileInfo
		Order allow,deny
		allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log
	LogLevel warn
	CustomLog /var/www/vhost/{VHOST}/log/access.log vhost_combined 
</VirtualHost>

... der untere Teil ist also nur der Unterschied - beachte das dann aber keine SSL Konfiguration in der apache2.conf, sites-available/default-ssl noch in einem anderen VHost existieren bzw. aktiv sein darf.

Eigentlich sollte diese SSL Konfiguration gleich in die default-ssl Datei rein - dafür ist diese ja gedacht.