Ich habe zwei Ruby on Rails 3-Anwendungen auf demselben Server (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
Als ich gegoogelt habe, warum dieses Problem auftritt, habe ich Folgendes erhalten:
Sie können keine namensbasierten 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 namensbasierten virtuellen Host identifiziert. Wenn Sie namenbasierte virtuelle Hosts verwenden möchten, beachten Sie, dass diese nur mit Ihrem nicht sicheren Webserver funktionieren.
Aber nicht in der Lage, herauszufinden, wie zwei SSL-Anwendung auf demselben Server ausgeführt werden.
Kann mir jemand helfen?
quelle
_default_
vhosts in der von Ihnen bereitgestellten Konfiguration, also sind sie woanders. Was ist die Ausgabe vonapache2ctl -S
? (Ja, es ist möglich, mehrere namenbasierte SSL-vhosts auf verschiedenen Zertifikaten auszuführen, vorausgesetzt, Sie müssen keine Clientbrowser mit Windows XP oder andere unterstützen, die TLS-SNI nicht unterstützen. Müssen Sie Windows unterstützen XP?)Antworten:
Fast dort!
Fügen Sie dies zu ports.conf oder http.conf hinzu und behalten Sie Ihre obige Konfiguration bei.
quelle
Es hat mir auch geholfen, "/ usr / sbin / apachectl -S" auszuführen. Dieser Befehlsexit zeigt ZWEI "ssl.conf" -Dateien im selben Pfad an. Verschieben oder löschen Sie die Täterdatei und alles sollte danach funktionieren.
quelle
Sie können dies zu Ihrer Apache-Konfiguration hinzufügen unter
/etc/apache2/ports.conf
:(Dies funktioniert in beiden Versionen: Apache 2.2 und 2.4)
quelle