it-swarm.com.de

_default_ VirtualHost-Überlappung an Port 443, der erste hat Vorrang

Ich habe zwei Ruby on Rails 3 Anwendungen, die auf demselben Server ausgeführt werden (Ubuntu 10.04), beide mit SSL.

Hier ist meine Apache-Konfigurationsdatei:

<VirtualHost *:80>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example1/production/shared/example1.crt
SSLCertificateKeyFile /home/me/example1/production/shared/example1.key
SSLCertificateChainFile /home/me/example1/production/shared/Gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>


<VirtualHost *:80>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example2/production/shared/iwanto.crt
SSLCertificateKeyFile /home/me/example2/production/shared/iwanto.key
SSLCertificateChainFile /home/me/example2/production/shared/Gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>

Was ist das Problem :

Beim Neustart meines Servers erhalte ich folgende Ausgabe:

 * Restarting web server Apache2                                   
 [Sun Jun 17 17:57:49 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
 ... waiting [Sun Jun 17 17:57:50 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence

Beim googeln, warum dieses Problem kommt, habe ich so etwas bekommen :

Sie können keine namenbasierten virtuellen Hosts mit SSL verwenden, da der SSL-Handshake (wenn der Browser das Zertifikat des sicheren Webservers akzeptiert) vor der HTTP-Anforderung erfolgt, die den entsprechenden namenbasierten virtuellen Host identifiziert. Wenn Sie namenbasierte virtuelle Hosts verwenden möchten, denken Sie daran, dass diese nur mit Ihrem nicht sicheren Webserver funktionieren.

Kann aber nicht herausfinden, wie zwei SSL-Anwendungen auf demselben Server ausgeführt werden.

Kann mir jemand helfen?

65
Mohit Jain

Fast dort!

Fügen Sie dies zu ports.conf oder http.conf hinzu und behalten Sie Ihre obige Konfiguration bei.

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/Apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.

    # !important below!
    NameVirtualHost *:443 
    Listen 443
</IfModule>
88

Es hat mir auch geholfen, "/ usr/sbin/apachectl -S" auszuführen. Dieser Befehlsexit zeigt ZWEI "ssl.conf" -Dateien auf demselben Pfad an. Verschieben oder löschen Sie die Täterdatei und alles sollte danach funktionieren.

3
Robert

Sie können dies Ihrer Apache-Konfiguration unter /etc/Apache2/ports.conf:

<IfModule mod_ssl.c>                
    Listen 443                      
    <IfModule !mod_authz_core.c>    
        # Apache 2.2                
        NameVirtualHost *:443       
    </IfModule>                     
</IfModule>                         

(Dies funktioniert in beiden: Apache 2.2 und 2.4)

1
rubo77