it-swarm.com.de

Wie kann ich einen VirtualHost in Apache zwingen, nicht auf undefinierte Unterdomänen auf 443 zu warten?

In /etc/Apache2/sites-available/example.com:

<VirtualHost *:443>
        ServerName www.example.com
        DocumentRoot /var/www/example.com/htdocs
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

Ich habe auch einen virtuellen Host für foo.example.com konfiguriert, der jedoch nur auf Port 80 lauscht.

Ich habe den A-Datensatz für foo.example.com, der auf denselben Server verweist. Wenn ich https://foo.example.com in meinem Browser besuche, wird der virtuelle Host für www.example.com geladen. Wie kann ich das bekämpfen?

3

Dies liegt daran, dass Sie kein SSL für die Unterdomäne foo.example.com eingerichtet haben und daher die Domäne www. verwenden. Wenn Sie kein SSL möchten, können Sie einfach den virtuellen Host entfernen, der auf Port 443 ausgeführt wird. Andernfalls fügen Sie der Konfiguration einfach Folgendes hinzu:

foo.example.com für SSL zulassen

<VirtualHost *:443>
        ServerName foo.example.com
        DocumentRoot /var/www/foo.example.com/htdocs
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

HTTPS zu HTTP umleiten

<VirtualHost *:443>
        ServerName foo.example.com
        RewriteEngine on
        RewriteCond %{HTTP_Host} ^foo.example.com
        RewriteRule ^/(.*)$ http://foo.example.com/$1 [L,R=301]
        DocumentRoot /var/www/foo.example.com/htdocs
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

Oder wenn Sie einen 404-Fehler möchten, verwenden Sie:

<VirtualHost *:443>
        ServerName foo.example.com
        RewriteEngine on
        Redirect 404 /
        ErrorDocument 404 "Page Not Found"
        DocumentRoot /var/www/foo.example.com/htdocs
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
2
Simon Hayter