Apache2 und Wildcard SSL

Wunderschönen Sonntag euch allen,

ich habe ein Problem mit der Konfiguration von VirtualHosts und einem Wildcard SSL-Zertifikat.

/etc/apache2/sites-available/seite.conf
Code:
<VirtualHost *:80>

    ServerName www.domain.de 
    ServerAlias www.domain.de domain.de
    ServerAdmin webmaster@domain.de

    DocumentRoot /var/www/seite/main/ 

    <Directory /var/www/seite/main/>
        Options FollowSymLinks MultiViews
        AllowOverride All 
        Order allow,deny
        allow from all
    </Directory>
    
    ErrorLog /var/www/seite/logs/main_error.log
    LogLevel warn
    CustomLog /var/www/seite/logs/main_access.log combined
    ServerSignature On 

</VirtualHost>



<VirtualHost *:80>

        ServerName public.domain.de
        ServerAlias public.domain.de 
        ServerAdmin webmaster@domain.de

        DocumentRoot /var/www/seite/public/

        <Directory /var/www/seite/public/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/www/seite/logs/public_error.log
        LogLevel warn
        CustomLog /var/www/seite/logs/public_access.log combined
        ServerSignature On
</VirtualHost>
^^ Diese Konfig funktioniert so

/etc/apache2/sites-available/seite-ssl.conf
Code:
<VirtualHost *:443>
    
        SSLEngine on
        SSLCertificateKeyFile /etc/ssl/private/private.key
        SSLCertificateFile /etc/ssl/certs/public.crt


        ServerName www.domain.de
        ServerAlias www.domain.de domain.de
        ServerAdmin webmaster@domain.de
        DocumentRoot /var/www/seite/main/
        <Directory /var/www/seite/main/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/www/seite/logs/main_error.log
        LogLevel warn
        CustomLog /var/www/seite/logs/main_access.log combined
        ServerSignature On
        
</VirtualHost>

So funktioniert die Konfig zwar, allerdings geht jede subdomain die ich über https aufrufe in den DocumentRoot /var/www/seite/main/

Wenn ich jetzt in der Datei seite-ssl.conf, einen weiteren VirtualHost anhänge, und den Apache neustarte bringt er einen Fehler und lässt sich nicht mehr starten :/

error.log
Code:
 [mpm_prefork:notice] [pid 1687] AH00171: Graceful restart requested, doing restart
[Sun Jun 15 14:40:36.688027 2014] [ssl:emerg] [pid 1687] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)
[Sun Jun 15 14:40:36.688045 2014] [ssl:emerg] [pid 1687] AH02312: Fatal error initialising mod_ssl, exiting.
[Sun Jun 15 14:40:39.276501 2014] [ssl:emerg] [pid 1889] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)
[Sun Jun 15 14:40:39.276539 2014] [ssl:emerg] [pid 1889] AH02312: Fatal error initialising mod_ssl, exiting.

Kann mir bitte irgendwer helfen? Ich habe auf Google bislang nichts brauchbares gefunden :(


Mit freundlichen Grüßen
Selig
 
Offenbar sind in deinem neuen VHost in der seite-ssl.conf die Direktiven SSLCertificateKeyFile und SSLCertificateFile nicht definiert.
 
Habe folgenden Host angefügt, der Fehler kommt nicht mehr!
allerdings kommt, wenn ich versuche https://public.domain.de aufzurufen immer nur die Startseite aus dem anderen VirtualHost
(var/www/seite/main)

eigentlich sollte es jedoch den DocumentRoot aus dem folgenden VH anzeigen,...

wie kann das sein?

Code:
<VirtualHost *:443>

        SSLEngine on
        SSLCertificateKeyFile /etc/ssl/private/private.key
        SSLCertificateFile /etc/ssl/certs/public.crt

        ServerName public.domain.de
        ServerAlias public.domain.de
        ServerAdmin webmaster@domain.de
        DocumentRoot /var/www/seite/public/
        <Directory /var/www/seite/public/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/www/seite/logs/public_error.log
        LogLevel warn
        CustomLog /var/www/seite/logs/public_access.log combined
        ServerSignature On

</VirtualHost>

in der error.log steht nun
Code:
[Sun Jun 15 15:04:43.830010 2014] [ssl:warn] [pid 2121] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Jun 15 15:04:43.830074 2014] [mpm_prefork:notice] [pid 2121] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4 OpenSSL/1.0.1f configured -- resuming normal operations
[Sun Jun 15 15:04:43.830079 2014] [core:notice] [pid 2121] AH00094: Command line: '/usr/sbin/apache2'
 
Zuletzt bearbeitet:
Das liegt daran, dass beim TLS Handshake kein Hostname (sondern nur IP und Port) bekannt ist und somit die Direktiven ServerAlias oder ServerName nicht herangezogen werden können. Es kann also nicht zwischen mehreren VirtualHosts unterschieden werden. Abhilfe schafft hier - wie im Errorlog bereits angedeutet - die TLS Erweiterung Server Name Indication. Deinen Apachen kannst du z.B. analog zum Apache-Wiki-Eintrag konfigurieren.

Darüber hinaus sind Wildcard-Zertifikate nicht empfehlenswert, die Gründe werden z.B. hier aufgezählt. Wenn du mehrere Hosts mit einem Zertifikat anbieten willst, dann nutze zu diesem Zweck die Erweiterung Subject Alternate Names.
 
Zuletzt bearbeitet:
Okay,

wenn ich mich nun richtig informiert habe, dann ist SNI standartmäßig inkludiert sobald ich den SSL-Mod aktiviert habe!

Allerdings heißt es man solle "NameVirtualHost *:443" in die ports.conf oder in die entsprechende VHost-Datei schreiben!

Habe ich nun also getan,
nun sagt Apache folgendes:

Code:
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf:7

Okay, allerdings habe ich mir bereits ein Wildcard Zertifikat gekauft und bin nicht sonderlich scharf darauf ein weiteres kaufen zu müssen,...
 
Zuletzt bearbeitet:
Schau dir diese Seite an. Eventuell kannst du da neue Informationen ableiten. DigiCert macht zusätzlich noch den Vorschlag, man sollte die IP-Adressen direkt auch im VirtualHost angeben:

If you have a Wildcard or UC certificate all of the websites using the same certificate need to reference the same IP address in the VirtualHost IP address:443 section [...]

Ich kenne mich mit dem Apachen nicht gnug aus und habe gerade kein Testsystem da, aber eventuell spielt die Reihenfolge der VirtualHost-Definition einen Rolle?
 
Vielen Vielen Dank! Ich habs geschafft dank deines Links!

und zwar musste ich hinter den Servernamen noch die Portangabe setzen, also folgendermaßen:

Code:
<VirtualHost *:443>
     ....
     ServerName www.domain.de:443
     ServerAlias domain.de www.domain.de
     ...
</VirtualHost>

Woher kommst du? Ich würde dir gerade recht gerne ein Bier ausgeben :D
 
Zurück
Oben