Ich habe einen virtuellen Server bei meinem ISP mit 2 öffentlichen IPv4-Adressen. Ich möchte mehrere Subdomains (mehr als 2) mit Apache betreiben und sie sowohl über HTTP als auch über HTTPS bereitstellen. Das SSL-Zertifikat ist ein Wildcard-Zertifikat für *.mydomain.com.
Ich habe versucht, Apache in Debian auf diese Weise zu konfigurieren, aber es ist fehlgeschlagen. Entweder werden meine virtuellen Hosts nicht akzeptiert oder ich erhalte SSL-Fehler. (Ich weiß, dass Apache den angeforderten Hostnamen vor der Bereitstellung des Zertifikats nicht sieht, aber das Zertifikat enthält alle möglichen Subdomänen.)
Bitte helfen Sie mit, eine httpd.conf zu erstellen, die optimal mit dem Apache-Konfigurationslayout von Debian funktioniert.
Alle Details:
- Apache lauscht auf *:80 für HTTP und *:443 für HTTPS
- Alle NameVirtualHosts, Aliase usw. müssen für beide Ports/Protokolle gleichzeitig definiert werden
- Die Standarddomäne für mydomain.com und www.mydomain.com sollte /var/www sein.
- zusätzliche NameVirtualHosts für foo.mydomain.com und bar.mydomain.com etc., die speziell konfiguriert werden können, um z.B. ein weiteres DocumentRoot zu haben
Antwort1
Apachedürfenden angefragten Hostnamen einsehen, mitTLS-Server-Namensanzeige.
Dies erfordert jedoch einen relativ aktuellen Webbrowser. Wer beispielsweise Internet Explorer unter Windows XP verwendet, erhält für zusätzliche Domänen eine Meldung, dass das Zertifikat nicht übereinstimmt. (Zum Glück gibt es fast keine WinXP/IE-Benutzer mehr.) DerWikipedia-Artikelhat eine Liste undhier ist eine Testseitewenn Sie unsicher sind.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>
Zusätzliche (Sub-)Domains:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /sites/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.example.com
DocumentRoot /sites/foo
SSLEngine on
SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>