Hi,
ich habe zwei Domains (wgdd.de und wgdd.org). Die Sub-Domain www.wgdd.de hat einen CNAME-Eintrag (für Google Blogger) und soll hier nicht weiter interessieren. Alle anderen Domains lösen auf meinen Server auf.
Dort ist der Apache unter Port 80 so eingestellt, dass er für bestimmte Sub- Domains den Code 410 ausgibt (alte, nicht mehr existierende Seiten) und ansonsten die URL auf die HTTPS-Adresse umleitet. Unverschlüsselt soll kein Inhalt ausgeliefert werden. Das klappt gut. Es geht also alles über HTTPS. Für die .de- und die .org-Domain habe ich daher mit letsencrypt/certbot SSL- Wildcard-Zertifikate erstellt. Auch das funktionierte prima.
Die Sub-Domains www2.wgdd.de, www3.wgdd.de und www.wgdd.org haben jeweils eine eigene Config (jeweils <VirtualHost *:443>) und natürlich als ServerName jeweils die Domain gesetzt.
ls -lA /etc/apache2/sites-enabled/ 000-default.conf www2.wgdd.de.conf www3.wgdd.de.conf www.wgdd.org.conf
Die Aufrufe im Browser funktionieren wie gewünscht.
Wenn ich jetzt im Browser aber `https://www4.wgdd.de%60 eingebe, greift der Server auf die wgdd.org-Zertifikate zurück und meldet eine unsichere Verbindung. Das ist das erste, was ich nicht so recht verstehe. Warum werden alle HTTPS-Anfragen, die nicht auf die vorhandenen ServerName/ServerAlias-Werte passen, auf den letzten geladenen VirtualHost (hier in www.wgdd.org.conf) unter Port 443 weitergeleitet? Laut Doku müsste er doch in diesem Fall den ersten nehmen...? Das zweite, was ich nicht so recht versteht: Warum verhält sich der Apache überhaupt so? Wenn ich keinen Wildcard-Alias angebe, dann will ich doch offensichtlich auch nicht, dass der Apache foo.wgdd.de handhabt.
Ich habe jetzt eine Config namens zzz.conf erstellt, die damit als letzte geladen wird und für *jede* meiner beiden Domains den folgenden Eintrag enthält:
<IfModule mod_ssl.c> <VirtualHost *:443>
ServerName default.wgdd.xx ServerAlias *.wgdd.xx ServerSignature Off
SSLEngine On SSLOptions +StrictRequire SSLCertificateFile /etc/letsencrypt/live/wgdd.xx/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/wgdd.xx/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/wgdd.xx/chain.pem SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt
Redirect 404 /
</VirtualHost> </IfModule>
Und ich muss leider zwei Einträge machen, damit die SSL-Zertifikate passen und der Browser nicht weitere Meldungen auswirft.
Das gibt zumindest einen 404-Code und fängt alle nicht existenten Adressen ab. Aber geht das vielleicht auch eleganter? Irgendwie fühlt sich das nicht "richtig" an.
Grüße, Daniel
lug-dd@mailman.schlittermann.de