Ich lade die SSL-Dateien für meine Wildcard-Subdomains vom virtuellen Host, aber der zweite virtuelle Host lädt die SSL-Datei des ersten virtuellen Hosts und der Browser meldet einen Fehler „Ungültiges Zertifikat“
Hier ist die Konfiguration
<VirtualHost *:443>
ServerName cert-1.domain.com
ServerAlias cert-1.domain.com,*.net.domain.com
DocumentRoot /home/myuser/public_html
ServerAdmin [email protected]
UseCanonicalName Off
<IfModule mod_suphp.c>
suPHP_UserGroup myuser myuser
</IfModule>
<IfModule suexec_module>
<IfModule !mod_ruid2.c>
SuexecUserGroup myuser myuser
</IfModule>
</IfModule>
<IfModule ssl_module>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cert-1.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cert-1.domain.com/privkey.pem
</IfModule>
</VirtualHost>
<VirtualHost *:443>
ServerName cert-2.domain.com
ServerAlias cert-2.domain.com,*.org.domain.com
DocumentRoot /home/myuser/public_html
ServerAdmin [email protected]
UseCanonicalName Off
<IfModule mod_suphp.c>
suPHP_UserGroup myuser myuser
</IfModule>
<IfModule suexec_module>
<IfModule !mod_ruid2.c>
SuexecUserGroup myuser myuser
</IfModule>
</IfModule>
<IfModule ssl_module>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cert-2.domain.com-2/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cert-2.domain.com-2/privkey.pem
</IfModule>
</VirtualHost>
Aber wenn ich anything.org.domain.com besuche, wird die SSL-Datei für den ersten virtuellen Host statt für den zweiten virtuellen Host geladen.
Selbst wenn ich eine Subdomäne ausprobiert habe, die sich nicht im ersten oder zweiten virtuellen Host befindet, wird dennoch die SSL-Datei des ersten virtuellen Hosts geladen und der Browser gibt einen „Ungültiges SSL“-Fehler aus.
Wie kann ich dieses Problem lösen?
Danke
Antwort1
Server-Aliase müssen durch Leerzeichen und nicht durch Kommas getrennt werden. Ihre ServerAlias
Zeile sollte also folgendermaßen aussehen:
ServerAlias cert-1.domain.com *.net.domain.com
Beachten Sie, dass in einem einzigen Block mehrere ServerAlias
Anweisungen angegeben werden können, wodurch die Konfiguration bei vielen Aliasnamen etwas lesbarer wird.
VirtualHost
Wenn Sie einen Host anfordern, für den keine explizite Konfiguration vorhanden ist, stellt Apache den ersten Block bereit, den es findet (aus diesem Grund ist es eine gute Idee, an letzter Stelle einen Block einzufügen ServerAlias *
, um eine „Catch-All“-Site zu haben).
In Ihrem Fall funktioniert also keine der ServerAlias
Zeilen (jedenfalls nicht so, wie Sie es erwarten), da Sie einen Alias für einen Server definieren, der den Namen „cert-2.domain.com,*.org.domain.com“ mit Komma, Sternchen und allem hätte. Wenn Sie daher nach „anything.org.domain.com“ fragen, stellt Apache den ersten Block bereit, auf den es stößt, da dieser Hostname in der Konfiguration nicht definiert ist.