shop.example.com ist eine eigene Adresse, die an drei Stellen existieren muss. Welche fehlt, lässt sich am Symptom leicht ablesen, und jede hat eine andere Abhilfe.
1. DNS
dig +short shop.example.com
# nothing at all: the record does not exist
Ein A-Eintrag auf den Server oder ein CNAME auf einen Hostnamen, der einen hat. Fehlt er, sagt der Browser, der Server sei nicht zu finden - die Anfrage verlässt die Maschine nie.
2. Der Serverblock
server {
listen 443 ssl;
server_name shop.example.com;
root /var/www/shop/public;
}
Steht das DNS und fehlt ein passender server_name, kommt die Anfrage an und Nginx liefert aus, was es für die Standardseite hält. Das ist das Symptom, bei dem eine Subdomain stattdessen die Hauptseite zeigt - und es heißt, dass DNS funktioniert.
3. Das Zertifikat
sudo certbot --nginx -d shop.example.com
Stimmen die ersten beiden und fehlt ein Zertifikat für diesen Namen, warnt der Browser, bevor er irgendetwas lädt. Der Name muss auf dem Zertifikat stehen; ein Zertifikat für example.com deckt shop.example.com nicht ab.
Wohin die Dateien gehören
- Ein eigenes Verzeichnis -
/var/www/shop/public. Sauber, und die empfohlene Form. - Ein Verzeichnis innerhalb der Hauptseite - möglich, und es heißt, dass die Hauptseite dieselben Dateien unter einer zweiten Adresse ausliefern kann, wenn Sie es nicht unterbinden.
Wildcards
Bei vielen Subdomains sind ein Wildcard-Eintrag und ein Wildcard-Zertifikat weniger Arbeit - siehe Wildcard-Subdomains.
